mirror of
https://github.com/ajnart/homarr.git
synced 2026-01-29 10:49:14 +01:00
44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
import { drizzle } from "drizzle-orm/mysql2";
|
|
import { migrate } from "drizzle-orm/mysql2/migrator";
|
|
import mysql from "mysql2";
|
|
|
|
import type { Database } from "../..";
|
|
import { env } from "../../env.mjs";
|
|
import * as mysqlSchema from "../../schema/mysql";
|
|
import { seedDataAsync } from "../seed";
|
|
|
|
const migrationsFolder = process.argv[2] ?? ".";
|
|
|
|
const migrateAsync = async () => {
|
|
const mysql2 = mysql.createConnection(
|
|
env.DB_URL
|
|
? { uri: env.DB_URL }
|
|
: {
|
|
host: env.DB_HOST,
|
|
database: env.DB_NAME,
|
|
port: env.DB_PORT,
|
|
user: env.DB_USER,
|
|
password: env.DB_PASSWORD,
|
|
},
|
|
);
|
|
|
|
const db = drizzle(mysql2, {
|
|
mode: "default",
|
|
schema: mysqlSchema,
|
|
casing: "snake_case",
|
|
});
|
|
|
|
await migrate(db, { migrationsFolder });
|
|
await seedDataAsync(db as unknown as Database);
|
|
};
|
|
|
|
migrateAsync()
|
|
.then(() => {
|
|
console.log("Migration complete");
|
|
process.exit(0);
|
|
})
|
|
.catch((err) => {
|
|
console.log("Migration failed", err);
|
|
process.exit(1);
|
|
});
|