mirror of
https://github.com/benjamin-wilson/public-pool.git
synced 2026-09-29 09:05:06 -07:00
Make share index migration online safe
This commit is contained in:
@@ -10,7 +10,11 @@ export class AcceptedShareIndex1780862400000 implements MigrationInterface {
|
|||||||
await queryRunner.query(`
|
await queryRunner.query(`
|
||||||
SELECT setval(
|
SELECT setval(
|
||||||
'accepted_share_index_seq',
|
'accepted_share_index_seq',
|
||||||
GREATEST((SELECT COUNT(*) FROM "accepted_share_entity") + 1, 1),
|
GREATEST(
|
||||||
|
(SELECT COUNT(*) FROM "accepted_share_entity") + 1,
|
||||||
|
(SELECT COALESCE(MAX("shareIndex"), 0) + 1 FROM "accepted_share_entity"),
|
||||||
|
1
|
||||||
|
),
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
`);
|
`);
|
||||||
@@ -18,28 +22,10 @@ export class AcceptedShareIndex1780862400000 implements MigrationInterface {
|
|||||||
ALTER TABLE "accepted_share_entity"
|
ALTER TABLE "accepted_share_entity"
|
||||||
ALTER COLUMN "shareIndex" SET DEFAULT nextval('accepted_share_index_seq')
|
ALTER COLUMN "shareIndex" SET DEFAULT nextval('accepted_share_index_seq')
|
||||||
`);
|
`);
|
||||||
await queryRunner.query(`
|
|
||||||
WITH ordered AS (
|
|
||||||
SELECT
|
|
||||||
"id",
|
|
||||||
"acceptedAt",
|
|
||||||
row_number() OVER (ORDER BY "acceptedAt", "id") AS "shareIndex"
|
|
||||||
FROM "accepted_share_entity"
|
|
||||||
WHERE "shareIndex" IS NULL
|
|
||||||
)
|
|
||||||
UPDATE "accepted_share_entity" AS share
|
|
||||||
SET "shareIndex" = ordered."shareIndex"
|
|
||||||
FROM ordered
|
|
||||||
WHERE share."id" = ordered."id"
|
|
||||||
AND share."acceptedAt" = ordered."acceptedAt"
|
|
||||||
`);
|
|
||||||
await queryRunner.query(`
|
|
||||||
ALTER TABLE "accepted_share_entity"
|
|
||||||
ALTER COLUMN "shareIndex" SET NOT NULL
|
|
||||||
`);
|
|
||||||
await queryRunner.query(`
|
await queryRunner.query(`
|
||||||
CREATE INDEX IF NOT EXISTS "IDX_accepted_share_order"
|
CREATE INDEX IF NOT EXISTS "IDX_accepted_share_order"
|
||||||
ON "accepted_share_entity" ("shareIndex" DESC)
|
ON "accepted_share_entity" ("shareIndex" DESC)
|
||||||
|
WHERE "shareIndex" IS NOT NULL
|
||||||
`);
|
`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user