From 187a587e681389d87278e7cf617df67b84ee516f Mon Sep 17 00:00:00 2001 From: chenos Date: Wed, 3 Apr 2024 21:15:28 +0800 Subject: [PATCH] fix: update plugin (#3895) --- packages/core/server/src/commands/start.ts | 11 +++++++++-- .../core/server/src/plugin-manager/plugin-manager.ts | 11 ++++++++++- storage/.gitignore | 1 + 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/core/server/src/commands/start.ts b/packages/core/server/src/commands/start.ts index b48defc86f..f99c90b5c9 100644 --- a/packages/core/server/src/commands/start.ts +++ b/packages/core/server/src/commands/start.ts @@ -1,3 +1,6 @@ +import { fsExists } from '@nocobase/utils'; +import fs from 'fs'; +import { resolve } from 'path'; import Application from '../application'; import { ApplicationNotInstall } from '../errors/application-not-install'; @@ -9,13 +12,17 @@ export default (app: Application) => { .option('--quickstart') .action(async (...cliArgs) => { const [options] = cliArgs; - if (options.quickstart) { + const file = resolve(process.cwd(), 'storage/app-upgrading'); + const upgrading = await fsExists(file); + if (upgrading) { + await app.upgrade(); + await fs.promises.rm(file); + } else if (options.quickstart) { if (await app.isInstalled()) { await app.upgrade(); } else { await app.install(); } - app['_started'] = true; await app.restart(); app.log.info('app has been started'); diff --git a/packages/core/server/src/plugin-manager/plugin-manager.ts b/packages/core/server/src/plugin-manager/plugin-manager.ts index 49500785ed..ffc3e1d320 100644 --- a/packages/core/server/src/plugin-manager/plugin-manager.ts +++ b/packages/core/server/src/plugin-manager/plugin-manager.ts @@ -815,7 +815,16 @@ export class PluginManager { } else { await this.upgradeByNpm(options as any); } - await this.app.upgrade(); + const file = resolve(process.cwd(), 'storage/app-upgrading'); + await fs.promises.writeFile(file, '', 'utf-8'); + // await this.app.upgrade(); + if (process.env.IS_DEV_CMD) { + await tsxRerunning(); + } else { + await execa('yarn', ['nocobase', 'pm2-restart'], { + env: process.env, + }); + } } /** diff --git a/storage/.gitignore b/storage/.gitignore index 39489c602b..1beec137cd 100644 --- a/storage/.gitignore +++ b/storage/.gitignore @@ -3,3 +3,4 @@ tmp app.watch.ts /e2e nocobase.conf +app-upgrading \ No newline at end of file