How to run migrations in production environment?

I'm using drizzle with sveltekit and ATM I run migrations locally using the following scripts I have in my package.json,
        "db:generate": "drizzle-kit generate --name=drizzle",
        "db:migrate": "tsx src/lib/server/database/migrate.ts",
        "db:drop": "drizzle-kit drop",

migrate.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()
Was this page helpful?