lobe-chat

Форк
0
40 строк · 1.3 Кб
1
const { join } = require('node:path');
2
const { Pool } = require('pg');
3
const { drizzle } = require('drizzle-orm/node-postgres');
4
const migrator = require('drizzle-orm/node-postgres/migrator');
5
const { PGVECTOR_HINT } = require('./errorHint');
6

7
if (!process.env.DATABASE_URL) {
8
  throw new Error('DATABASE_URL is not set, please set it in your environment variables.');
9
}
10

11
const client = new Pool({ connectionString: process.env.DATABASE_URL });
12

13
const db = drizzle(client);
14

15
const runMigrations = async () => {
16
  console.log('[Database] Start to migration...');
17
  await migrator.migrate(db, {
18
    migrationsFolder: join(__dirname, './migrations'),
19
  });
20

21
  console.log('✅ database migration pass.');
22
  console.log('-------------------------------------');
23
  // eslint-disable-next-line unicorn/no-process-exit
24
  process.exit(0);
25
};
26

27
// eslint-disable-next-line unicorn/prefer-top-level-await
28
runMigrations().catch((err) => {
29
  console.error(
30
    '❌ Database migrate failed. Please check your database is valid and DATABASE_URL is set correctly. The error detail is below:',
31
  );
32
  console.error(err);
33

34
  if (err.message.includes('extension "vector" is not available')) {
35
    console.info(PGVECTOR_HINT);
36
  }
37

38
  // eslint-disable-next-line unicorn/no-process-exit
39
  process.exit(1);
40
});
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.