NeonDB: Migration Taking Long
Hi, I have been using dirrzle with neon DB, and it has been a great experience. However, once I changed my schema a lil bit and migrate again, it was taking extremely long time and query is never executed.
db/index.ts
db/migrate.ts
package.json
db/index.ts
import { neon, neonConfig } from "@neondatabase/serverless";
import { drizzle } from "drizzle-orm/neon-http";
import * as schema from "@/db/schema";
import "dotenv/config";
// create database connection
neonConfig.fetchConnectionCache = true;
const connection = neon(process.env.DATABASE_URL!);
export const db = drizzle(connection, { schema: schema });import { neon, neonConfig } from "@neondatabase/serverless";
import { drizzle } from "drizzle-orm/neon-http";
import * as schema from "@/db/schema";
import "dotenv/config";
// create database connection
neonConfig.fetchConnectionCache = true;
const connection = neon(process.env.DATABASE_URL!);
export const db = drizzle(connection, { schema: schema });db/migrate.ts
import { migrate } from "drizzle-orm/neon-http/migrator";
import { neon, neonConfig } from "@neondatabase/serverless";
import { drizzle } from "drizzle-orm/neon-http";
import "dotenv/config";
// inspired by Raphael Moreau @rphlmr for Postgres, extended for Planetscale
const runMigrate = async () => {
if (!process.env.DATABASE_URL) {
throw new Error("DATABASE_URL is not defined");
}
neonConfig.fetchConnectionCache = true;
const connection = neon(process.env.DATABASE_URL!);
const db = drizzle(connection);
console.log("⏳ Running migrations...");
const start = Date.now();
await migrate(db, { migrationsFolder: "migrations" });
const end = Date.now();
console.log(`✅ Migrations completed in ${end - start}ms`);
process.exit(0);
};
runMigrate().catch((err) => {
console.error("❌ Migration failed");
console.error(err);
process.exit(1);
});import { migrate } from "drizzle-orm/neon-http/migrator";
import { neon, neonConfig } from "@neondatabase/serverless";
import { drizzle } from "drizzle-orm/neon-http";
import "dotenv/config";
// inspired by Raphael Moreau @rphlmr for Postgres, extended for Planetscale
const runMigrate = async () => {
if (!process.env.DATABASE_URL) {
throw new Error("DATABASE_URL is not defined");
}
neonConfig.fetchConnectionCache = true;
const connection = neon(process.env.DATABASE_URL!);
const db = drizzle(connection);
console.log("⏳ Running migrations...");
const start = Date.now();
await migrate(db, { migrationsFolder: "migrations" });
const end = Date.now();
console.log(`✅ Migrations completed in ${end - start}ms`);
process.exit(0);
};
runMigrate().catch((err) => {
console.error("❌ Migration failed");
console.error(err);
process.exit(1);
});package.json
"scripts": {
"start": "tsx --watch src/index.ts",
"test": "tsx src/test.ts",
"db:migrate": "drizzle-kit generate:pg",
"db:studio": "drizzle-kit studio",
"db:push": "tsx db/migrate.ts",
"db:drop": "drizzle-kit drop --config=drizzle.config.ts"
} "scripts": {
"start": "tsx --watch src/index.ts",
"test": "tsx src/test.ts",
"db:migrate": "drizzle-kit generate:pg",
"db:studio": "drizzle-kit studio",
"db:push": "tsx db/migrate.ts",
"db:drop": "drizzle-kit drop --config=drizzle.config.ts"
}