From 25d3dcad5984973cd2a4ddbf6601d2e855442146 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Mon, 11 Nov 2024 16:09:18 +0100 Subject: [PATCH] fix --- integration-tests/__tests__/deploy-database.spec.js | 4 ++++ packages/datalib/src/ScriptDrivedDeployer.ts | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/integration-tests/__tests__/deploy-database.spec.js b/integration-tests/__tests__/deploy-database.spec.js index bcea791a9..61fc3aa6d 100644 --- a/integration-tests/__tests__/deploy-database.spec.js +++ b/integration-tests/__tests__/deploy-database.spec.js @@ -638,6 +638,10 @@ describe('Deploy database', () => { testWrapper(async (conn, driver, engine) => { await testDatabaseDeploy(engine, conn, driver, [ [ + { + name: 't1.uninstall.sql', + text: 'drop table t1', + }, { name: 't1.install.sql', text: 'create table t1 (id int primary key); insert into t1 (id) values (1)', diff --git a/packages/datalib/src/ScriptDrivedDeployer.ts b/packages/datalib/src/ScriptDrivedDeployer.ts index 9c258f4bc..3e4a160cc 100644 --- a/packages/datalib/src/ScriptDrivedDeployer.ts +++ b/packages/datalib/src/ScriptDrivedDeployer.ts @@ -161,7 +161,8 @@ export class ScriptDrivedDeployer { case 'install': if (isEqual) return; const uninstallFile = this.uninstall.find(x => x.name == file.name.replace('.install.sql', '.uninstall.sql')); - if (uninstallFile) { + if (uninstallFile && journalItem) { + // file was previously installed, uninstall first await this.runFileCore( uninstallFile, 'uninstall',