From b37bd1e51ee83e816d1827e66d6ada5825a202f3 Mon Sep 17 00:00:00 2001 From: Ben Hollis Date: Sat, 17 Jan 2026 16:05:04 -0800 Subject: [PATCH] Don't require bungie ID --- api/db/migration-state-queries.ts | 2 +- ...300-migration-state-membership-nullable.js | 36 +++++++++++++++++++ api/routes/update.ts | 6 +++- 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 api/migrations/20260118000300-migration-state-membership-nullable.js diff --git a/api/db/migration-state-queries.ts b/api/db/migration-state-queries.ts index 4837774..dcd9426 100644 --- a/api/db/migration-state-queries.ts +++ b/api/db/migration-state-queries.ts @@ -33,7 +33,7 @@ interface MigrationStateRow { export async function backfillMigrationState( client: ClientBase, platformMembershipId: string, - bungieMembershipId: number, + bungieMembershipId: number | undefined, ): Promise { await client.query({ name: 'backfill_migration_state', diff --git a/api/migrations/20260118000300-migration-state-membership-nullable.js b/api/migrations/20260118000300-migration-state-membership-nullable.js new file mode 100644 index 0000000..f56452e --- /dev/null +++ b/api/migrations/20260118000300-migration-state-membership-nullable.js @@ -0,0 +1,36 @@ +'use strict'; + +var dbm; +var type; +var seed; + +/** + * We receive the dbmigrate dependency from dbmigrate initially. + * This enables us to not have to rely on NODE_PATH. + */ +exports.setup = function (options, seedLink) { + dbm = options.dbmigrate; + type = dbm.dataType; + seed = seedLink; +}; + +// Most items in Stately don't have membership_id filled out. +exports.up = function (db, callback) { + db.runSql( + `alter table migration_state + alter column membership_id drop not null;`, + callback, + ); +}; + +exports.down = function (db, callback) { + db.runSql( + `alter table migration_state + alter column membership_id set not null;`, + callback, + ); +}; + +exports._meta = { + version: 1, +}; diff --git a/api/routes/update.ts b/api/routes/update.ts index 0b79e18..bd404de 100644 --- a/api/routes/update.ts +++ b/api/routes/update.ts @@ -96,7 +96,11 @@ export const updateHandler = asyncHandler(async (req, res) => { // backfilling. if (platformMembershipId) { await transaction(async (client) => { - backfillMigrationState(client, platformMembershipId ?? profileIds[0], bungieMembershipId); + await backfillMigrationState( + client, + platformMembershipId ?? profileIds[0], + bungieMembershipId, + ); }); }