1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-14 00:19:16 +01:00

fix: delete duplicate client instances

- Due to applying a primary key constraint on app_name, instance_id,
  active installations with client_instances that have already violated
  this unique constraint will fail to migrate.
- This commit drops all but the latest instance of each (app_name,
  instance_id) tuple, thus preparing the database for applying the
  unique constraint

Co-authored-by: Ivar Conradi Osthus <ivarconr@gmail.com>
Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
This commit is contained in:
Christopher Kolstad 2021-03-19 11:54:12 +01:00
parent b24f68d4f8
commit 14d1718889

View File

@ -3,6 +3,7 @@
exports.up = function(db, cb) {
db.runSql(
`
DELETE FROM client_instances a USING client_instances b WHERE a.app_name = b.app_name AND a.instance_id = b.instance_id AND a.created_at < b.created_at;
ALTER TABLE client_instances ADD PRIMARY KEY (app_name, instance_id);
`,
cb,
@ -13,7 +14,7 @@ exports.down = function(db, cb) {
db.runSql(
`
ALTER TABLE client_instances DROP CONSTRAINT client_instances_pkey;
DROP INDEX client_instance_pkey
DROP INDEX IF EXISTS client_instance_pkey
`,
cb,
);