Skip to content

Commit 5c71db6

Browse files
authored
♻️ refactor: refactor db core (lobehub#7245)
* refactor db core * fix tests
1 parent 481cab0 commit 5c71db6

File tree

11 files changed

+22
-17
lines changed

11 files changed

+22
-17
lines changed

scripts/migrateServerDB/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { migrate as neonMigrate } from 'drizzle-orm/neon-serverless/migrator';
33
import { migrate as nodeMigrate } from 'drizzle-orm/node-postgres/migrator';
44
import { join } from 'node:path';
55

6-
import { serverDB } from '../../src/database/server/core/db';
6+
import { serverDB } from '../../src/database/server';
77
import { DB_FAIL_INIT_HINT, PGVECTOR_HINT } from './errorHint';
88

99
// Read the `.env` file if it exists, or a file specified by the

src/database/core/db-adaptor.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// import { isDesktop } from '@/const/version';
2+
import { getDBInstance } from '@/database/core/web-server';
3+
4+
// import { getPgliteInstance } from './electron';
5+
6+
export const serverDB = getDBInstance();
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import ws from 'ws';
99

1010
import { serverDBEnv } from '@/config/db';
1111

12-
import * as schema from '../../schemas';
12+
import * as schema from '../schemas';
1313

14-
const migrationsFolder = join(__dirname, '../../migrations');
14+
const migrationsFolder = join(__dirname, '../migrations');
1515

1616
export const getTestDBInstance = async () => {
1717
let connectionString = serverDBEnv.DATABASE_TEST_URL;
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { Pool as NeonPool, neonConfig } from '@neondatabase/serverless';
2-
import { NeonDatabase, drizzle as neonDrizzle } from 'drizzle-orm/neon-serverless';
2+
import { drizzle as neonDrizzle } from 'drizzle-orm/neon-serverless';
33
import { drizzle as nodeDrizzle } from 'drizzle-orm/node-postgres';
44
import { Pool as NodePool } from 'pg';
55
import ws from 'ws';
66

77
import { serverDBEnv } from '@/config/db';
88
import { isServerMode } from '@/const/version';
9+
import * as schema from '@/database/schemas';
910

10-
import * as schema from '../../schemas';
11+
import { LobeChatDatabase } from '../type';
1112

12-
export const getDBInstance = (): NeonDatabase<typeof schema> => {
13+
export const getDBInstance = (): LobeChatDatabase => {
1314
if (!isServerMode) return {} as any;
1415

1516
if (!serverDBEnv.KEY_VAULTS_SECRET) {
@@ -40,5 +41,3 @@ If you don't have it, please run \`openssl rand -base64 32\` to create one.
4041
const client = new NeonPool({ connectionString });
4142
return neonDrizzle(client, { schema });
4243
};
43-
44-
export const serverDB = getDBInstance();

src/database/models/__tests__/_test_template.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
import { eq } from 'drizzle-orm/expressions';
33
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
44

5-
import { getTestDBInstance } from '@/database/server/core/dbForTest';
5+
import { LobeChatDatabase } from '@/database/type';
66

77
import { sessionGroups, users } from '../../schemas';
88
import { SessionGroupModel } from '../sessionGroup';
9+
import { getTestDB } from './_util';
910

10-
let serverDB = await getTestDBInstance();
11+
const serverDB: LobeChatDatabase = await getTestDB();
1112

1213
const userId = 'session-group-model-test-user-id';
1314
const sessionGroupModel = new SessionGroupModel(serverDB, userId);

src/database/models/__tests__/_util.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { clientDB, initializeDB } from '@/database/client/db';
2-
import { getTestDBInstance } from '@/database/server/core/dbForTest';
2+
import { getTestDBInstance } from '@/database/core/dbForTest';
33
import { LobeChatDatabase } from '@/database/type';
44

5-
export const isServerDBMode = process.env.TEST_SERVER_DB === '1';
5+
const isServerDBMode = process.env.TEST_SERVER_DB === '1';
66

77
export const getTestDB = async () => {
88
if (isServerDBMode) return await getTestDBInstance();

src/database/models/__tests__/session.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { and, eq, inArray } from 'drizzle-orm/expressions';
22
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
33

44
import { DEFAULT_AGENT_CONFIG } from '@/const/settings';
5-
import { getTestDBInstance } from '@/database/server/core/dbForTest';
65
import { LobeChatDatabase } from '@/database/type';
76
import { idGenerator } from '@/database/utils/idGenerator';
87

src/database/repositories/dataImporter/deprecated/__tests__/index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import { eq, inArray } from 'drizzle-orm/expressions';
33
import { beforeEach, describe, expect, it, vi } from 'vitest';
44

5+
import { getTestDBInstance } from '@/database/core/dbForTest';
56
import {
67
agents,
78
agentsToSessions,
@@ -11,7 +12,6 @@ import {
1112
topics,
1213
users,
1314
} from '@/database/schemas';
14-
import { getTestDBInstance } from '@/database/server/core/dbForTest';
1515
import { CURRENT_CONFIG_VERSION } from '@/migrations';
1616
import { ImporterEntryData } from '@/types/importer';
1717

src/database/server/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export { serverDB } from './core/db';
1+
export { serverDB } from '../core/db-adaptor';

src/database/server/models/__tests__/nextauth.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import type {
88
import { eq } from 'drizzle-orm/expressions';
99
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
1010

11+
import { getTestDBInstance } from '@/database/core/dbForTest';
1112
import {
1213
nextauthAccounts,
1314
nextauthAuthenticators,
1415
nextauthSessions,
1516
nextauthVerificationTokens,
1617
users,
1718
} from '@/database/schemas';
18-
import { getTestDBInstance } from '@/database/server/core/dbForTest';
1919
import { LobeChatDatabase } from '@/database/type';
2020
import { LobeNextAuthDbAdapter } from '@/libs/next-auth/adapter';
2121

0 commit comments

Comments
 (0)