diff --git a/server/setup/migrationsSqlite.ts b/server/setup/migrationsSqlite.ts index 2cd874e2..5c705e26 100644 --- a/server/setup/migrationsSqlite.ts +++ b/server/setup/migrationsSqlite.ts @@ -20,7 +20,7 @@ import m16 from "./scriptsSqlite/1.0.0"; import m17 from "./scriptsSqlite/1.1.0"; import m18 from "./scriptsSqlite/1.2.0"; import m19 from "./scriptsSqlite/1.3.0"; -import { setHostMeta } from "./setHostMeta"; +import m20 from "./scriptsSqlite/1.3.0"; // THIS CANNOT IMPORT ANYTHING FROM THE SERVER // EXCEPT FOR THE DATABASE AND THE SCHEMA @@ -40,7 +40,8 @@ const migrations = [ { version: "1.0.0", run: m16 }, { version: "1.1.0", run: m17 }, { version: "1.2.0", run: m18 }, - { version: "1.3.0", run: m19 } + { version: "1.3.0", run: m19 }, + { version: "1.4.0", run: m20 }, // Add new migrations here as they are created ] as const; diff --git a/server/setup/scriptsSqlite/1.4.0.ts b/server/setup/scriptsSqlite/1.4.0.ts new file mode 100644 index 00000000..24a2f2fc --- /dev/null +++ b/server/setup/scriptsSqlite/1.4.0.ts @@ -0,0 +1,29 @@ +import Database from "better-sqlite3"; +import path from "path"; +import { encodeBase32LowerCaseNoPadding } from "@oslojs/encoding"; +import { APP_PATH, configFilePath1, configFilePath2 } from "@server/lib/consts"; + +const version = "1.4.0"; +const location = path.join(APP_PATH, "db", "db.sqlite"); + +export default async function migration() { + console.log(`Running setup script ${version}...`); + + const db = new Database(location); + + try { + db.pragma("foreign_keys = OFF"); + db.transaction(() => { + db.exec(` + ALTER TABLE 'sites' ADD 'dockerSocketEnabled' integer DEFAULT true NOT NULL; + `); + })(); // <-- executes the transaction immediately + db.pragma("foreign_keys = ON"); + console.log(`Migrated database schema`); + } catch (e) { + console.log("Unable to migrate database schema"); + throw e; + } + + console.log(`${version} migration complete`); +} \ No newline at end of file