diff --git a/backend/src/db/migrations/20251011141618_membership-identity-index.ts b/backend/src/db/migrations/20251011141618_membership-identity-index.ts new file mode 100644 index 000000000..8d33b61a0 --- /dev/null +++ b/backend/src/db/migrations/20251011141618_membership-identity-index.ts @@ -0,0 +1,23 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + const hasScopeColumn = await knex.schema.hasColumn(TableName.Membership, "scope"); + const hasActorIdentityColumn = await knex.schema.hasColumn(TableName.Membership, "actorIdentityId"); + if (hasScopeColumn && hasActorIdentityColumn) { + await knex.schema.alterTable(TableName.Membership, (t) => { + t.index(["scope", "actorIdentityId"]); + }); + } +} + +export async function down(knex: Knex): Promise { + const hasScopeColumn = await knex.schema.hasColumn(TableName.Membership, "scope"); + const hasActorIdentityColumn = await knex.schema.hasColumn(TableName.Membership, "actorIdentityId"); + if (hasScopeColumn && hasActorIdentityColumn) { + await knex.schema.alterTable(TableName.Membership, (t) => { + t.dropIndex(["scope", "actorIdentityId"]); + }); + } +}