1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/src/migrations/20210302080040-add-pk-to-client-instances.js
Christopher Kolstad 780464d3ad 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>
2021-03-19 11:56:57 +01:00

22 lines
545 B
JavaScript

'use strict';
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,
);
};
exports.down = function(db, cb) {
db.runSql(
`
ALTER TABLE client_instances DROP CONSTRAINT client_instances_pkey;
DROP INDEX IF EXISTS client_instance_pkey
`,
cb,
);
};