comfyui-deploy/web/migrate.mts
2023-12-09 00:10:59 +08:00

42 lines
1.1 KiB
TypeScript

const { drizzle } = await import("drizzle-orm/postgres-js");
const { migrate } = await import("drizzle-orm/postgres-js/migrator");
const { default: postgres } = await import("postgres");
import { config } from "dotenv";
config({
path: ".local.env",
});
const migrationsFolderName = process.env.MIGRATIONS_FOLDER || "drizzle";
let sslMode: string | boolean = process.env.SSL || "require";
if (sslMode === "false") sslMode = false;
console.log(migrationsFolderName, sslMode);
const connectionString = process.env.POSTGRES_URL!;
console.log(connectionString);
const sql = postgres(connectionString, { max: 1, ssl: sslMode as any });
const db = drizzle(sql, {
logger: true,
});
let retries = 5;
while(retries) {
try {
await sql`SELECT NOW()`;
console.log('Database is live');
break;
} catch (error) {
console.error('Database is not live yet', error);
retries -= 1;
console.log(`Retries left: ${retries}`);
await new Promise(res => setTimeout(res, 1000));
}
}
console.log("Migrating...");
await migrate(db, { migrationsFolder: migrationsFolderName });
console.log("Done!");
process.exit();