2024-03-16 15:51:34 +01:00
|
|
|
import Database from "better-sqlite3";
|
|
|
|
|
import { drizzle } from "drizzle-orm/better-sqlite3";
|
|
|
|
|
import { migrate } from "drizzle-orm/better-sqlite3/migrator";
|
|
|
|
|
|
2024-12-19 17:48:10 +01:00
|
|
|
import { env } from "../../env.mjs";
|
2024-12-19 16:10:22 +01:00
|
|
|
import * as sqliteSchema from "../../schema/sqlite";
|
2024-10-21 17:23:51 +02:00
|
|
|
import { seedDataAsync } from "../seed";
|
|
|
|
|
|
2024-05-10 23:46:01 +02:00
|
|
|
const migrationsFolder = process.argv[2] ?? ".";
|
2024-03-16 15:51:34 +01:00
|
|
|
|
2024-10-21 17:23:51 +02:00
|
|
|
const migrateAsync = async () => {
|
2024-12-19 17:48:10 +01:00
|
|
|
const sqlite = new Database(env.DB_URL.replace("file:", ""));
|
2024-10-21 17:23:51 +02:00
|
|
|
|
2024-12-19 16:10:22 +01:00
|
|
|
const db = drizzle(sqlite, { schema: sqliteSchema, casing: "snake_case" });
|
2024-10-21 17:23:51 +02:00
|
|
|
|
|
|
|
|
migrate(db, { migrationsFolder });
|
2024-03-16 15:51:34 +01:00
|
|
|
|
2024-10-21 17:23:51 +02:00
|
|
|
await seedDataAsync(db);
|
|
|
|
|
};
|
2024-03-16 15:51:34 +01:00
|
|
|
|
2024-10-21 17:23:51 +02:00
|
|
|
migrateAsync()
|
|
|
|
|
.then(() => {
|
|
|
|
|
console.log("Migration complete");
|
|
|
|
|
process.exit(0);
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
console.log("Migration failed", err);
|
|
|
|
|
process.exit(1);
|
|
|
|
|
});
|