30 lines
850 B
TypeScript
30 lines
850 B
TypeScript
import { migrate } from "drizzle-orm/mysql2/migrator";
|
|
|
|
import { createMysqlDb, createSharedDbConfig } from "@homarr/core/infrastructure/db";
|
|
|
|
import type { Database } from "../..";
|
|
import * as mysqlSchema from "../../schema/mysql";
|
|
import { applyCustomMigrationsAsync } from "../custom";
|
|
import { seedDataAsync } from "../seed";
|
|
|
|
const migrationsFolder = process.argv[2] ?? ".";
|
|
|
|
const migrateAsync = async () => {
|
|
const config = createSharedDbConfig(mysqlSchema);
|
|
const db = createMysqlDb(config);
|
|
|
|
await migrate(db, { migrationsFolder });
|
|
await seedDataAsync(db as unknown as Database);
|
|
await applyCustomMigrationsAsync(db as unknown as Database);
|
|
};
|
|
|
|
migrateAsync()
|
|
.then(() => {
|
|
console.log("Migration complete");
|
|
process.exit(0);
|
|
})
|
|
.catch((err) => {
|
|
console.log("Migration failed", err);
|
|
process.exit(1);
|
|
});
|