mirror of
https://github.com/fosrl/pangolin.git
synced 2025-06-22 21:33:42 +02:00
all resources at the base domain closes #137
This commit is contained in:
parent
0840c166ab
commit
e475c1ea50
15 changed files with 496 additions and 141 deletions
|
@ -3,8 +3,9 @@ import db, { exists } from "@server/db";
|
|||
import path from "path";
|
||||
import semver from "semver";
|
||||
import { versionMigrations } from "@server/db/schema";
|
||||
import { __DIRNAME, APP_VERSION } from "@server/lib/consts";
|
||||
import { __DIRNAME, APP_PATH, APP_VERSION } from "@server/lib/consts";
|
||||
import { SqliteError } from "better-sqlite3";
|
||||
import fs from "fs";
|
||||
import m1 from "./scripts/1.0.0-beta1";
|
||||
import m2 from "./scripts/1.0.0-beta2";
|
||||
import m3 from "./scripts/1.0.0-beta3";
|
||||
|
@ -12,6 +13,7 @@ import m4 from "./scripts/1.0.0-beta5";
|
|||
import m5 from "./scripts/1.0.0-beta6";
|
||||
import m6 from "./scripts/1.0.0-beta9";
|
||||
import m7 from "./scripts/1.0.0-beta10";
|
||||
import m8 from "./scripts/1.0.0-beta12";
|
||||
|
||||
// THIS CANNOT IMPORT ANYTHING FROM THE SERVER
|
||||
// EXCEPT FOR THE DATABASE AND THE SCHEMA
|
||||
|
@ -24,12 +26,41 @@ const migrations = [
|
|||
{ version: "1.0.0-beta.5", run: m4 },
|
||||
{ version: "1.0.0-beta.6", run: m5 },
|
||||
{ version: "1.0.0-beta.9", run: m6 },
|
||||
{ version: "1.0.0-beta.10", run: m7 }
|
||||
{ version: "1.0.0-beta.10", run: m7 },
|
||||
{ version: "1.0.0-beta.12", run: m8 }
|
||||
// Add new migrations here as they are created
|
||||
] as const;
|
||||
|
||||
// Run the migrations
|
||||
await runMigrations();
|
||||
await run();
|
||||
|
||||
async function run() {
|
||||
// backup the database
|
||||
backupDb();
|
||||
|
||||
// run the migrations
|
||||
await runMigrations();
|
||||
}
|
||||
|
||||
function backupDb() {
|
||||
// make dir config/db/backups
|
||||
const appPath = APP_PATH;
|
||||
const dbDir = path.join(appPath, "db");
|
||||
|
||||
const backupsDir = path.join(dbDir, "backups");
|
||||
|
||||
// check if the backups directory exists and create it if it doesn't
|
||||
if (!fs.existsSync(backupsDir)) {
|
||||
fs.mkdirSync(backupsDir, { recursive: true });
|
||||
}
|
||||
|
||||
// copy the db.sqlite file to backups
|
||||
// add the date to the filename
|
||||
const date = new Date();
|
||||
const dateString = `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}_${date.getHours()}-${date.getMinutes()}-${date.getSeconds()}`;
|
||||
const dbPath = path.join(dbDir, "db.sqlite");
|
||||
const backupPath = path.join(backupsDir, `db_${dateString}.sqlite`);
|
||||
fs.copyFileSync(dbPath, backupPath);
|
||||
}
|
||||
|
||||
export async function runMigrations() {
|
||||
try {
|
||||
|
@ -105,7 +136,10 @@ async function executeScripts() {
|
|||
`Successfully completed migration ${migration.version}`
|
||||
);
|
||||
} catch (e) {
|
||||
if (e instanceof SqliteError && e.code === "SQLITE_CONSTRAINT_UNIQUE") {
|
||||
if (
|
||||
e instanceof SqliteError &&
|
||||
e.code === "SQLITE_CONSTRAINT_UNIQUE"
|
||||
) {
|
||||
console.error("Migration has already run! Skipping...");
|
||||
continue;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue