exclaim-recovery-database
Version:
Shared database schemas for Exclaim Recovery platform
49 lines (38 loc) • 1.28 kB
text/typescript
import 'dotenv/config';
import { drizzle } from 'drizzle-orm/node-postgres';
import { migrate } from 'drizzle-orm/node-postgres/migrator';
import { Pool } from 'pg';
import { sql } from 'drizzle-orm';
import { resolve } from 'path';
import * as schema from './schema.js';
async function main() {
// Get connection string from environment
const connectionString = process.env.VERCEL_POSTGRES_URL;
if (!connectionString) {
console.error('No VERCEL_POSTGRES_URL found in environment');
process.exit(1);
}
console.log('Connecting to database...');
const pool = new Pool({
connectionString,
});
const db = drizzle(pool, { schema });
try {
// First, ensure the pgvector extension is installed
console.log('Installing pgvector extension...');
await db.execute(sql`CREATE EXTENSION IF NOT EXISTS vector`);
// Then run migrations
console.log('Running migrations...');
// Define the migrations folder path
const migrationsFolder = resolve(__dirname, './migrations');
// Run migrations
await migrate(db, { migrationsFolder });
console.log('Migrations completed successfully');
} catch (error) {
console.error('Migration failed:', error);
process.exit(1);
} finally {
await pool.end();
}
}
main();