lobe-chat
40 строк · 1.3 Кб
1const { join } = require('node:path');2const { Pool } = require('pg');3const { drizzle } = require('drizzle-orm/node-postgres');4const migrator = require('drizzle-orm/node-postgres/migrator');5const { PGVECTOR_HINT } = require('./errorHint');6
7if (!process.env.DATABASE_URL) {8throw new Error('DATABASE_URL is not set, please set it in your environment variables.');9}
10
11const client = new Pool({ connectionString: process.env.DATABASE_URL });12
13const db = drizzle(client);14
15const runMigrations = async () => {16console.log('[Database] Start to migration...');17await migrator.migrate(db, {18migrationsFolder: join(__dirname, './migrations'),19});20
21console.log('✅ database migration pass.');22console.log('-------------------------------------');23// eslint-disable-next-line unicorn/no-process-exit24process.exit(0);25};26
27// eslint-disable-next-line unicorn/prefer-top-level-await
28runMigrations().catch((err) => {29console.error(30'❌ Database migrate failed. Please check your database is valid and DATABASE_URL is set correctly. The error detail is below:',31);32console.error(err);33
34if (err.message.includes('extension "vector" is not available')) {35console.info(PGVECTOR_HINT);36}37
38// eslint-disable-next-line unicorn/no-process-exit39process.exit(1);40});41