diff --git a/packages/common/src/schema/Invocation.ts b/packages/common/src/schema/Invocation.ts index fc923e6d..6d9ce16c 100644 --- a/packages/common/src/schema/Invocation.ts +++ b/packages/common/src/schema/Invocation.ts @@ -4,6 +4,7 @@ export const INVOCATION_COLLECTION = 'invocations' export type InvocationPid = string export type InvocationFields = BaseFields & { + uid: RecordId instanceId: RecordId startedAt: IsoDate endedAt: IsoDate diff --git a/packages/daemon/migrations/1695129360_updated_invocations.js b/packages/daemon/migrations/1695129360_updated_invocations.js new file mode 100644 index 00000000..085e58b0 --- /dev/null +++ b/packages/daemon/migrations/1695129360_updated_invocations.js @@ -0,0 +1,54 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("aiw8te7y7atklwn") + + collection.indexes = [ + "CREATE INDEX `idx_CTV52b6` ON `invocations` (`created`)", + "CREATE INDEX `idx_6rNZeTK` ON `invocations` (`instanceId`)", + "CREATE INDEX `idx_LTmqfbC` ON `invocations` (`totalSeconds`)", + "CREATE INDEX `idx_7YR9a3g` ON `invocations` (\n `instanceId`,\n `created`\n)", + "CREATE INDEX `idx_ntC1d1L` ON `invocations` (\n `totalSeconds`,\n `created`\n)", + "CREATE INDEX `idx_vViR75E` ON `invocations` (\n `created`,\n `totalSeconds`\n)", + "CREATE INDEX `idx_q9LanEj` ON `invocations` (\n `created`,\n `instanceId`\n)", + "CREATE INDEX `idx_ueUQe1N` ON `invocations` (`uid`)" + ] + + // add + collection.schema.addField(new SchemaField({ + "system": false, + "id": "kmyokg1d", + "name": "uid", + "type": "relation", + "required": false, + "presentable": false, + "unique": false, + "options": { + "collectionId": "systemprofiles0", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": null + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("aiw8te7y7atklwn") + + collection.indexes = [ + "CREATE INDEX `idx_CTV52b6` ON `invocations` (`created`)", + "CREATE INDEX `idx_6rNZeTK` ON `invocations` (`instanceId`)", + "CREATE INDEX `idx_LTmqfbC` ON `invocations` (`totalSeconds`)", + "CREATE INDEX `idx_7YR9a3g` ON `invocations` (\n `instanceId`,\n `created`\n)", + "CREATE INDEX `idx_ntC1d1L` ON `invocations` (\n `totalSeconds`,\n `created`\n)", + "CREATE INDEX `idx_vViR75E` ON `invocations` (\n `created`,\n `totalSeconds`\n)", + "CREATE INDEX `idx_q9LanEj` ON `invocations` (\n `created`,\n `instanceId`\n)" + ] + + // remove + collection.schema.removeField("kmyokg1d") + + return dao.saveCollection(collection) +}) diff --git a/packages/daemon/migrations/1695129536_update_invocation_uids.js b/packages/daemon/migrations/1695129536_update_invocation_uids.js new file mode 100644 index 00000000..77aaf767 --- /dev/null +++ b/packages/daemon/migrations/1695129536_update_invocation_uids.js @@ -0,0 +1,10 @@ +/// + +migrate( + (db) => { + db.newQuery( + 'UPDATE invocations SET uid = (select uid from instances where instances.id = invocations.instanceId)', + ).execute() + }, + (db) => {}, +) diff --git a/packages/daemon/migrations/1695130842_updated_invocations.js b/packages/daemon/migrations/1695130842_updated_invocations.js new file mode 100644 index 00000000..abd5c4dc --- /dev/null +++ b/packages/daemon/migrations/1695130842_updated_invocations.js @@ -0,0 +1,36 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("aiw8te7y7atklwn") + + collection.indexes = [ + "CREATE INDEX `idx_CTV52b6` ON `invocations` (`created`)", + "CREATE INDEX `idx_6rNZeTK` ON `invocations` (`instanceId`)", + "CREATE INDEX `idx_LTmqfbC` ON `invocations` (`totalSeconds`)", + "CREATE INDEX `idx_7YR9a3g` ON `invocations` (\n `instanceId`,\n `created`\n)", + "CREATE INDEX `idx_ntC1d1L` ON `invocations` (\n `totalSeconds`,\n `created`\n)", + "CREATE INDEX `idx_vViR75E` ON `invocations` (\n `created`,\n `totalSeconds`\n)", + "CREATE INDEX `idx_q9LanEj` ON `invocations` (\n `created`,\n `instanceId`\n)", + "CREATE INDEX `idx_ueUQe1N` ON `invocations` (`uid`)", + "CREATE INDEX `idx_gh6iEUG` ON `invocations` (\n `instanceId`,\n `startedAt`\n)", + "CREATE INDEX `idx_CUsNbfu` ON `invocations` (\n `uid`,\n `startedAt`\n)" + ] + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("aiw8te7y7atklwn") + + collection.indexes = [ + "CREATE INDEX `idx_CTV52b6` ON `invocations` (`created`)", + "CREATE INDEX `idx_6rNZeTK` ON `invocations` (`instanceId`)", + "CREATE INDEX `idx_LTmqfbC` ON `invocations` (`totalSeconds`)", + "CREATE INDEX `idx_7YR9a3g` ON `invocations` (\n `instanceId`,\n `created`\n)", + "CREATE INDEX `idx_ntC1d1L` ON `invocations` (\n `totalSeconds`,\n `created`\n)", + "CREATE INDEX `idx_vViR75E` ON `invocations` (\n `created`,\n `totalSeconds`\n)", + "CREATE INDEX `idx_q9LanEj` ON `invocations` (\n `created`,\n `instanceId`\n)", + "CREATE INDEX `idx_ueUQe1N` ON `invocations` (`uid`)" + ] + + return dao.saveCollection(collection) +}) diff --git a/packages/daemon/src/services/clientService/InvocationMixin.ts b/packages/daemon/src/services/clientService/InvocationMixin.ts index 0dbb40a0..b40ea4e6 100644 --- a/packages/daemon/src/services/clientService/InvocationMixin.ts +++ b/packages/daemon/src/services/clientService/InvocationMixin.ts @@ -22,6 +22,7 @@ export const createInvocationMixin = ( logger, async (instance: InstanceFields, pid: InvocationPid) => { const init: Partial = { + uid: instance.uid, startedAt: pocketNow(), pid, instanceId: instance.id,