How to run migrations in production environment?
I'm using
drizzledrizzle with sveltekitsveltekit and ATM I run migrations locally using the following scripts I have in my package.jsonpackage.json, "db:generate": "drizzle-kit generate --name=drizzle",
"db:migrate": "tsx src/lib/server/database/migrate.ts",
"db:drop": "drizzle-kit drop", "db:generate": "drizzle-kit generate --name=drizzle",
"db:migrate": "tsx src/lib/server/database/migrate.ts",
"db:drop": "drizzle-kit drop",migrate.tsmigrate.ts file has this,import { logger } from "$lib/logger";
import { drizzle } from 'drizzle-orm/postgres-js';
import { migrate } from 'drizzle-orm/postgres-js/migrator';
import postgres from 'postgres';
if (!process.env.DATABASE_URL) {
logger.error("DATABASE_URL is not set");
process.exit(1);
}
async function main() {
const migrationClient = postgres(process.env.DATABASE_URL as string, { max: 1 });
await migrate(drizzle(migrationClient), {
migrationsFolder: "./src/lib/server/database/migrations",
})
await migrationClient.end()
}
main()import { logger } from "$lib/logger";
import { drizzle } from 'drizzle-orm/postgres-js';
import { migrate } from 'drizzle-orm/postgres-js/migrator';
import postgres from 'postgres';
if (!process.env.DATABASE_URL) {
logger.error("DATABASE_URL is not set");
process.exit(1);
}
async function main() {
const migrationClient = postgres(process.env.DATABASE_URL as string, { max: 1 });
await migrate(drizzle(migrationClient), {
migrationsFolder: "./src/lib/server/database/migrations",
})
await migrationClient.end()
}
main()