diff --git a/src/mothership-app/migrations/1703778362_updated_instances.js b/src/mothership-app/migrations/1703778362_updated_instances.js new file mode 100644 index 00000000..de59358c --- /dev/null +++ b/src/mothership-app/migrations/1703778362_updated_instances.js @@ -0,0 +1,47 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("etae8tuiaxl6xfv") + + collection.indexes = [ + "CREATE UNIQUE INDEX `idx_unique_qdtuuld1` ON `instances` (`subdomain`)", + "CREATE INDEX `idx_DKUSkMx` ON `instances` (`status`)", + "CREATE INDEX `idx_fhfKrpl` ON `instances` (`uid`)", + "CREATE INDEX `idx_TfdgNnO` ON `instances` (`maintenance`)", + "CREATE INDEX `idx_FrmHehp` ON `instances` (`created`)", + "CREATE INDEX `idx_tNMeylJ` ON `instances` (`updated`)", + "CREATE UNIQUE INDEX `idx_rBYwAXi` ON `instances` (`cname_active`) WHERE cname != ''" + ] + + // add + collection.schema.addField(new SchemaField({ + "system": false, + "id": "hsoandop", + "name": "cname_active", + "type": "bool", + "required": false, + "presentable": false, + "unique": false, + "options": {} + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("etae8tuiaxl6xfv") + + collection.indexes = [ + "CREATE UNIQUE INDEX `idx_unique_qdtuuld1` ON `instances` (`subdomain`)", + "CREATE INDEX `idx_DKUSkMx` ON `instances` (`status`)", + "CREATE INDEX `idx_fhfKrpl` ON `instances` (`uid`)", + "CREATE INDEX `idx_TfdgNnO` ON `instances` (`maintenance`)", + "CREATE INDEX `idx_FrmHehp` ON `instances` (`created`)", + "CREATE INDEX `idx_tNMeylJ` ON `instances` (`updated`)", + "CREATE UNIQUE INDEX `idx_rBYwAXi` ON `instances` (`cname`) WHERE cname != ''" + ] + + // remove + collection.schema.removeField("hsoandop") + + return dao.saveCollection(collection) +}) diff --git a/src/services/MothershipAdmimClientService/InstanceMIxin.ts b/src/services/MothershipAdmimClientService/InstanceMIxin.ts index 58649dfe..a7035aac 100644 --- a/src/services/MothershipAdmimClientService/InstanceMIxin.ts +++ b/src/services/MothershipAdmimClientService/InstanceMIxin.ts @@ -36,7 +36,9 @@ export const createInstanceMixin = (context: MixinContext) => { ): Promise => client .collection(INSTANCE_COLLECTION) - .getFirstListItem(`cname = '${host}'`, { expand: 'uid' }) + .getFirstListItem(`cname = '${host}' and cname_active = 1`, { + expand: 'uid', + }) const getInstanceById = async ( instanceId: InstanceId,