From 66960da6850b1502ff5f9c6513c4b3be8b4e6e29 Mon Sep 17 00:00:00 2001 From: Edouard Demotes Date: Fri, 22 Mar 2024 21:05:54 -0400 Subject: [PATCH 1/2] chore: new sdk version --- package-lock.json | 8 ++++---- packages/cli/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index bf355885..016a6f40 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1611,9 +1611,9 @@ } }, "node_modules/@directus/sdk": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@directus/sdk/-/sdk-15.0.2.tgz", - "integrity": "sha512-OGgj7twVa8rIGONXwTWKUru8t6amyd+rsq/7OukOTR1z199p1O8hsLJz7buKualGyqJvoX21CeTNEg9jcQHPPg==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@directus/sdk/-/sdk-15.0.3.tgz", + "integrity": "sha512-Z6n1YaXSMSQuYH6ENG1W4lcpyPgfwRzBpEJOXeknAnJlneLeV/+iNtCB8WxjnH8D73Sv72peRLKMQtr/SZDz7Q==", "dependencies": { "@directus/system-data": "1.0.1" }, @@ -18441,7 +18441,7 @@ "version": "1.3.0", "license": "MIT", "dependencies": { - "@directus/sdk": "^15.0.2", + "@directus/sdk": "^15.0.3", "commander": "^12.0.0", "deep-object-diff": "^1.1.9", "deepmerge": "^4.3.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 55174fc3..35ca5b84 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -31,7 +31,7 @@ "typescript": "5.4.2" }, "dependencies": { - "@directus/sdk": "^15.0.2", + "@directus/sdk": "^15.0.3", "commander": "^12.0.0", "deep-object-diff": "^1.1.9", "deepmerge": "^4.3.1", From d530d5620e6b8c13ad6eaa7e369549b8b2ea5f28 Mon Sep 17 00:00:00 2001 From: Edouard Demotes Date: Fri, 22 Mar 2024 21:06:24 -0400 Subject: [PATCH 2/2] feat: clear cache before process --- packages/cli/src/lib/commands/diff.ts | 4 +++- packages/cli/src/lib/commands/pull.ts | 9 ++++++++- packages/cli/src/lib/commands/push.ts | 5 ++++- .../cli/src/lib/services/migration-client.ts | 19 +++++++++++++++++-- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/lib/commands/diff.ts b/packages/cli/src/lib/commands/diff.ts index 552d5e78..0300e1dd 100644 --- a/packages/cli/src/lib/commands/diff.ts +++ b/packages/cli/src/lib/commands/diff.ts @@ -1,8 +1,10 @@ import { Container } from 'typedi'; -import { SnapshotClient } from '../services'; +import { MigrationClient, SnapshotClient } from '../services'; import { loadCollections } from '../loader'; export async function runDiff() { + // Clear the cache + await Container.get(MigrationClient).clearCache(); // Snapshot await Container.get(SnapshotClient).diff(); diff --git a/packages/cli/src/lib/commands/pull.ts b/packages/cli/src/lib/commands/pull.ts index 72f23f9f..da1afd70 100644 --- a/packages/cli/src/lib/commands/pull.ts +++ b/packages/cli/src/lib/commands/pull.ts @@ -1,8 +1,15 @@ import { Container } from 'typedi'; -import { SnapshotClient, SpecificationsClient } from '../services'; +import { + MigrationClient, + SnapshotClient, + SpecificationsClient, +} from '../services'; import { loadCollections } from '../loader'; export async function runPull() { + // Clear the cache + await Container.get(MigrationClient).clearCache(); + // Snapshot await Container.get(SnapshotClient).pull(); diff --git a/packages/cli/src/lib/commands/push.ts b/packages/cli/src/lib/commands/push.ts index caca4088..2fee9d01 100644 --- a/packages/cli/src/lib/commands/push.ts +++ b/packages/cli/src/lib/commands/push.ts @@ -1,12 +1,15 @@ import { Container } from 'typedi'; import pino from 'pino'; -import { SnapshotClient } from '../services'; +import { MigrationClient, SnapshotClient } from '../services'; import { loadCollections } from '../loader'; import { LOGGER } from '../constants'; export async function runPush() { const logger: pino.Logger = Container.get(LOGGER); + // Clear the cache + await Container.get(MigrationClient).clearCache(); + // Snapshot logger.info(`---- Push schema ----`); await Container.get(SnapshotClient).push(); diff --git a/packages/cli/src/lib/services/migration-client.ts b/packages/cli/src/lib/services/migration-client.ts index 2409436d..53472647 100644 --- a/packages/cli/src/lib/services/migration-client.ts +++ b/packages/cli/src/lib/services/migration-client.ts @@ -1,6 +1,7 @@ import { authentication, AuthenticationClient, + clearCache, createDirectus, DirectusClient, readMe, @@ -11,9 +12,12 @@ import { Inject, Service } from 'typedi'; import pino from 'pino'; import { LOGGER } from '../constants'; import { ConfigService, isDirectusConfigWithToken } from './config'; +import { getChildLogger } from '../helpers'; @Service() export class MigrationClient { + protected readonly logger: pino.Logger; + protected adminRoleId: string | undefined; protected client: @@ -24,8 +28,10 @@ export class MigrationClient { constructor( protected readonly config: ConfigService, - @Inject(LOGGER) protected readonly logger: pino.Logger, - ) {} + @Inject(LOGGER) baseLogger: pino.Logger, + ) { + this.logger = getChildLogger(baseLogger, 'migration-client'); + } async get() { if (!this.client) { @@ -50,6 +56,15 @@ export class MigrationClient { return this.adminRoleId; } + /** + * This method clears the cache of the Directus instance + */ + async clearCache() { + const directus = await this.get(); + await directus.request(clearCache()); + this.logger.debug('Cache cleared'); + } + protected async createClient() { const config = this.config.getDirectusConfig(); const client = createDirectus(config.url)