From 62fd3f4e0048e47c8c086ec5ec0885c2be254b39 Mon Sep 17 00:00:00 2001 From: Alessandro Magionami Date: Thu, 18 Jul 2024 15:11:08 +0200 Subject: [PATCH] chore(useremails): migration to backfill user emails --- .../20240710154658_user-emails-backfill.ts | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 packages/server/modules/core/migrations/20240710154658_user-emails-backfill.ts diff --git a/packages/server/modules/core/migrations/20240710154658_user-emails-backfill.ts b/packages/server/modules/core/migrations/20240710154658_user-emails-backfill.ts new file mode 100644 index 000000000..c94ca441d --- /dev/null +++ b/packages/server/modules/core/migrations/20240710154658_user-emails-backfill.ts @@ -0,0 +1,26 @@ +import { UserRecord } from '@/modules/core/helpers/types' +import { Knex } from 'knex' +import crs from 'crypto-random-string' + +export async function up(knex: Knex): Promise { + const users = await knex('users').select(['id', 'email', 'verified']) + + if (users.length > 0) { + await knex('user_emails') + .insert( + users.map((user) => ({ + id: crs({ length: 10 }), + userId: user.id, + email: user.email, + verified: user.verified, + primary: true + })) + ) + .onConflict(['userId', 'email']) + .ignore() + } +} + +export async function down(knex: Knex): Promise { + await knex('user_emails').delete() +}