diff options
Diffstat (limited to 'apps/backend/scripts')
| -rw-r--r-- | apps/backend/scripts/migrate.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/apps/backend/scripts/migrate.ts b/apps/backend/scripts/migrate.ts new file mode 100644 index 00000000..4f8db70d --- /dev/null +++ b/apps/backend/scripts/migrate.ts @@ -0,0 +1,36 @@ +import { config } from "dotenv"; +import { drizzle } from "drizzle-orm/postgres-js"; +import { migrate } from "drizzle-orm/postgres-js/migrator"; +import process from "node:process"; +import postgres from "postgres"; + +config(); + +if (!process.env.DATABASE_URL) { + throw new Error("DATABASE_URL is not set"); +} + +const connectionString = process.env.DATABASE_URL!; + +console.log("Connecting to:", connectionString.replace(/:[^:@]+@/, ":****@")); // Log sanitized connection string + +const migrationClient = postgres(connectionString, { max: 1 }); + +async function main() { + console.log("Running migrations..."); + + try { + const db = drizzle(migrationClient); + await migrate(db, { migrationsFolder: "./drizzle" }); + console.log("Migrations completed!"); + } catch (error) { + console.error("Migration failed:", error); + } finally { + await migrationClient.end(); + } +} + +main().catch((err) => { + console.error("Unexpected error:", err); + process.exit(1); +}); |