Skip to content

Commit 9aa16d4

Browse files
authored
♻️ refactor: move schema and migration folder (lobehub#4874)
* move schema folder * fix tests * fix vercel build
1 parent b7b583d commit 9aa16d4

File tree

92 files changed

+62
-62
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+62
-62
lines changed

Dockerfile.database

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ COPY --from=builder /deps/node_modules/pg /app/node_modules/pg
116116
COPY --from=builder /deps/node_modules/drizzle-orm /app/node_modules/drizzle-orm
117117

118118
# Copy database migrations
119-
COPY --from=builder /app/src/database/server/migrations /app/migrations
119+
COPY --from=builder /app/src/database/migrations /app/migrations
120120
COPY --from=builder /app/scripts/migrateServerDB/docker.cjs /app/docker.cjs
121121
COPY --from=builder /app/scripts/migrateServerDB/errorHint.js /app/errorHint.js
122122

drizzle.config.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ export default {
2222
url: connectionString,
2323
},
2424
dialect: 'postgresql',
25-
out: './src/database/server/migrations',
25+
out: './src/database/migrations',
2626

27-
schema: './src/database/server/schemas/lobechat',
27+
schema: './src/database/schemas',
2828
strict: true,
2929
} satisfies Config;

scripts/migrateServerDB/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dotenv.config();
1111

1212
const runMigrations = async () => {
1313
await migrator.migrate(serverDB, {
14-
migrationsFolder: join(__dirname, '../../src/database/server/migrations'),
14+
migrationsFolder: join(__dirname, '../../src/database/migrations'),
1515
});
1616
console.log('✅ database migration pass.');
1717
// eslint-disable-next-line unicorn/no-process-exit

src/database/server/schemas/lobechat/agent.ts src/database/schemas/agent.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { createInsertSchema } from 'drizzle-zod';
44

55
import { LobeAgentChatConfig, LobeAgentTTSConfig } from '@/types/agent';
66

7-
import { idGenerator, randomSlug } from '../../utils/idGenerator';
7+
import { idGenerator, randomSlug } from '@/database/utils/idGenerator';
88
import { timestamps } from './_helpers';
99
import { files, knowledgeBases } from './file';
1010
import { users } from './user';

src/database/server/schemas/lobechat/file.ts src/database/schemas/file.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
} from 'drizzle-orm/pg-core';
1212
import { createInsertSchema } from 'drizzle-zod';
1313

14-
import { idGenerator } from '../../utils/idGenerator';
14+
import { idGenerator } from '@/database/utils/idGenerator';
1515
import { accessedAt, createdAt, timestamps } from './_helpers';
1616
import { asyncTasks } from './asyncTask';
1717
import { chunks } from './rag';
File renamed without changes.

src/database/server/schemas/lobechat/message.ts src/database/schemas/message.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
} from 'drizzle-orm/pg-core';
1313
import { createSelectSchema } from 'drizzle-zod';
1414

15-
import { idGenerator } from '../../utils/idGenerator';
15+
import { idGenerator } from '@/database/utils/idGenerator';
1616
import { timestamps } from './_helpers';
1717
import { agents } from './agent';
1818
import { files } from './file';
File renamed without changes.

src/database/server/schemas/lobechat/session.ts src/database/schemas/session.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { boolean, integer, pgTable, text, unique, uniqueIndex, varchar } from 'drizzle-orm/pg-core';
33
import { createInsertSchema } from 'drizzle-zod';
44

5-
import { idGenerator, randomSlug } from '../../utils/idGenerator';
5+
import { idGenerator, randomSlug } from '@/database/utils/idGenerator';
66
import { timestamps } from './_helpers';
77
import { users } from './user';
88

src/database/server/schemas/lobechat/topic.ts src/database/schemas/topic.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { boolean, jsonb, pgTable, text, unique } from 'drizzle-orm/pg-core';
33
import { createInsertSchema } from 'drizzle-zod';
44

5-
import { idGenerator } from '../../utils/idGenerator';
5+
import { idGenerator } from '@/database/utils/idGenerator';
66
import { timestamps, timestamptz } from './_helpers';
77
import { sessions } from './session';
88
import { users } from './user';
File renamed without changes.

src/database/server/core/db.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import ws from 'ws';
77
import { serverDBEnv } from '@/config/db';
88
import { isServerMode } from '@/const/version';
99

10-
import * as schema from '../schemas/lobechat';
10+
import * as schema from '../../schemas';
1111

1212
export const getDBInstance = (): NeonDatabase<typeof schema> => {
1313
if (!isServerMode) return {} as any;

src/database/server/core/dbForTest.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import ws from 'ws';
99

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

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

1414
export const getTestDBInstance = async () => {
1515
let connectionString = serverDBEnv.DATABASE_TEST_URL;
@@ -24,7 +24,7 @@ export const getTestDBInstance = async () => {
2424
const db = nodeDrizzle(client, { schema });
2525

2626
await nodeMigrator.migrate(db, {
27-
migrationsFolder: join(__dirname, '../migrations'),
27+
migrationsFolder: join(__dirname, '../../migrations'),
2828
});
2929

3030
return db;

src/database/server/models/__tests__/_test_template.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
44

55
import { getTestDBInstance } from '@/database/server/core/dbForTest';
66

7-
import { sessionGroups, users } from '../../schemas/lobechat';
7+
import { sessionGroups, users } from '../../../schemas';
88
import { SessionGroupModel } from '../sessionGroup';
99

1010
let serverDB = await getTestDBInstance();

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
knowledgeBases,
1414
sessions,
1515
users,
16-
} from '../../schemas/lobechat';
16+
} from '../../../schemas';
1717
import { AgentModel } from '../agent';
1818

1919
let serverDB = await getTestDBInstance();

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
55
import { getTestDBInstance } from '@/database/server/core/dbForTest';
66
import { AsyncTaskStatus, AsyncTaskType } from '@/types/asyncTask';
77

8-
import { asyncTasks, users } from '../../schemas/lobechat';
8+
import { asyncTasks, users } from '../../../schemas';
99
import { ASYNC_TASK_TIMEOUT, AsyncTaskModel } from '../asyncTask';
1010

1111
let serverDB = await getTestDBInstance();

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
files,
1212
unstructuredChunks,
1313
users,
14-
} from '../../schemas/lobechat';
14+
} from '../../../schemas';
1515
import { ChunkModel } from '../chunk';
1616
import { codeEmbedding, designThinkingQuery, designThinkingQuery2 } from './fixtures/embedding';
1717

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
knowledgeBaseFiles,
1313
knowledgeBases,
1414
users,
15-
} from '../../schemas/lobechat';
15+
} from '../../../schemas';
1616
import { FileModel } from '../file';
1717

1818
let serverDB = await getTestDBInstance();

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
knowledgeBaseFiles,
1313
knowledgeBases,
1414
users,
15-
} from '../../schemas/lobechat';
15+
} from '../../../schemas';
1616
import { KnowledgeBaseModel } from '../knowledgeBase';
1717

1818
let serverDB = await getTestDBInstance();

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
sessions,
1414
topics,
1515
users,
16-
} from '../../schemas/lobechat';
16+
} from '../../../schemas';
1717
import { MessageModel } from '../message';
1818

1919
let serverDB = await getTestDBInstance();

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
nextauthSessions,
1616
nextauthVerificationTokens,
1717
users,
18-
} from '@/database/server/schemas/lobechat';
18+
} from '@/database/schemas';
1919
import { LobeNextAuthDbAdapter } from '@/libs/next-auth/adapter';
2020

2121
let serverDB = await getTestDBInstance();

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
33

44
import { getTestDBInstance } from '@/database/server/core/dbForTest';
55

6-
import { NewInstalledPlugin, installedPlugins, users } from '../../schemas/lobechat';
6+
import { NewInstalledPlugin, installedPlugins, users } from '../../../schemas';
77
import { PluginModel } from '../plugin';
88

99
let serverDB = await getTestDBInstance();

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import {
1313
sessions,
1414
topics,
1515
users,
16-
} from '../../schemas/lobechat';
17-
import { idGenerator } from '../../utils/idGenerator';
16+
} from '../../../schemas';
17+
import { idGenerator } from '@/database/utils/idGenerator';
1818
import { SessionModel } from '../session';
1919

2020
let serverDB = await getTestDBInstance();

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
55

66
import { getTestDBInstance } from '@/database/server/core/dbForTest';
77

8-
import { sessionGroups, users } from '../../schemas/lobechat';
8+
import { sessionGroups, users } from '../../../schemas';
99
import { SessionGroupModel } from '../sessionGroup';
1010

1111
let serverDB = await getTestDBInstance();

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
33

44
import { getTestDBInstance } from '@/database/server/core/dbForTest';
55

6-
import { messages, sessions, topics, users } from '../../schemas/lobechat';
6+
import { messages, sessions, topics, users } from '../../../schemas';
77
import { CreateTopicParams, TopicModel } from '../topic';
88

99
let serverDB = await getTestDBInstance();

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
77
import { UserGuide, UserPreference } from '@/types/user';
88
import { UserSettings } from '@/types/user/settings';
99

10-
import { userSettings, users } from '../../schemas/lobechat';
10+
import { userSettings, users } from '../../../schemas';
1111
import { SessionModel } from '../session';
1212
import { UserModel } from '../user';
1313

src/database/server/models/_template.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { and, desc } from 'drizzle-orm/expressions';
33

44
import { serverDB } from '@/database/server';
55

6-
import { NewSessionGroup, SessionGroupItem, sessionGroups } from '../schemas/lobechat';
6+
import { NewSessionGroup, SessionGroupItem, sessionGroups } from '../../schemas';
77

88
export class TemplateModel {
99
private userId: string;

src/database/server/models/agent.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
agentsToSessions,
1010
files,
1111
knowledgeBases,
12-
} from '@/database/server/schemas/lobechat';
12+
} from '@/database/schemas';
1313

1414
export class AgentModel {
1515
private userId: string;

src/database/server/models/asyncTask.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
AsyncTaskType,
1010
} from '@/types/asyncTask';
1111

12-
import { AsyncTaskSelectItem, NewAsyncTaskItem, asyncTasks } from '../schemas/lobechat';
12+
import { AsyncTaskSelectItem, NewAsyncTaskItem, asyncTasks } from '../../schemas';
1313

1414
// set timeout to about 5 minutes, and give 2s padding time
1515
export const ASYNC_TASK_TIMEOUT = 298 * 1000;

src/database/server/models/chunk.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
fileChunks,
1414
files,
1515
unstructuredChunks,
16-
} from '../schemas/lobechat';
16+
} from '../../schemas';
1717

1818
export class ChunkModel {
1919
private userId: string;

src/database/server/models/embedding.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { and } from 'drizzle-orm/expressions';
33

44
import { serverDB } from '@/database/server';
55

6-
import { NewEmbeddingsItem, embeddings } from '../schemas/lobechat';
6+
import { NewEmbeddingsItem, embeddings } from '../../schemas';
77

88
export class EmbeddingModel {
99
private userId: string;

src/database/server/models/file.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
files,
1717
globalFiles,
1818
knowledgeBaseFiles,
19-
} from '../schemas/lobechat';
19+
} from '../../schemas';
2020

2121
export class FileModel {
2222
private readonly userId: string;

src/database/server/models/knowledgeBase.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { and, desc } from 'drizzle-orm/expressions';
44
import { serverDB } from '@/database/server';
55
import { KnowledgeBaseItem } from '@/types/knowledgeBase';
66

7-
import { NewKnowledgeBase, knowledgeBaseFiles, knowledgeBases } from '../schemas/lobechat';
7+
import { NewKnowledgeBase, knowledgeBaseFiles, knowledgeBases } from '../../schemas';
88

99
export class KnowledgeBaseModel {
1010
private userId: string;

src/database/server/models/message.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { count } from 'drizzle-orm';
22
import { and, asc, desc, eq, gte, inArray, isNull, like, lt } from 'drizzle-orm/expressions';
33

44
import { serverDB } from '@/database/server/core/db';
5-
import { idGenerator } from '@/database/server/utils/idGenerator';
5+
import { idGenerator } from '@/database/utils/idGenerator';
66
import { getFullFileUrl } from '@/server/utils/files';
77
import {
88
ChatFileItem,
@@ -28,7 +28,7 @@ import {
2828
messageTranslates,
2929
messages,
3030
messagesFiles,
31-
} from '../schemas/lobechat';
31+
} from '../../schemas';
3232

3333
export interface QueryMessageParams {
3434
current?: number;

src/database/server/models/plugin.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { and, desc, eq } from 'drizzle-orm/expressions';
22

33
import { serverDB } from '@/database/server';
44

5-
import { InstalledPluginItem, NewInstalledPlugin, installedPlugins } from '../schemas/lobechat';
5+
import { InstalledPluginItem, NewInstalledPlugin, installedPlugins } from '../../schemas';
66

77
export class PluginModel {
88
private userId: string;

src/database/server/models/ragEval/dataset.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { and, desc, eq } from 'drizzle-orm';
22

33
import { serverDB } from '@/database/server';
4-
import { NewEvalDatasetsItem, evalDatasets } from '@/database/server/schemas/lobechat';
4+
import { NewEvalDatasetsItem, evalDatasets } from '@/database/schemas';
55
import { RAGEvalDataSetItem } from '@/types/eval';
66

77
export class EvalDatasetModel {

src/database/server/models/ragEval/datasetRecord.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
NewEvalDatasetRecordsItem,
66
evalDatasetRecords,
77
files,
8-
} from '@/database/server/schemas/lobechat';
8+
} from '@/database/schemas';
99
import { EvalDatasetRecordRefFile } from '@/types/eval';
1010

1111
export class EvalDatasetRecordModel {

src/database/server/models/ragEval/evaluation.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
evalDatasets,
77
evalEvaluation,
88
evaluationRecords,
9-
} from '@/database/server/schemas/lobechat';
9+
} from '@/database/schemas';
1010
import { EvalEvaluationStatus, RAGEvalEvaluationItem } from '@/types/eval';
1111

1212
export class EvalEvaluationModel {

src/database/server/models/ragEval/evaluationRecord.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { and, eq } from 'drizzle-orm';
22

33
import { serverDB } from '@/database/server';
4-
import { NewEvaluationRecordsItem, evaluationRecords } from '@/database/server/schemas/lobechat';
4+
import { NewEvaluationRecordsItem, evaluationRecords } from '@/database/schemas';
55

66
export class EvaluationRecordModel {
77
private userId: string;

src/database/server/models/session.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ import {
1818
agentsToSessions,
1919
sessionGroups,
2020
sessions,
21-
} from '../schemas/lobechat';
22-
import { idGenerator } from '../utils/idGenerator';
21+
} from '../../schemas';
22+
import { idGenerator } from '@/database/utils/idGenerator';
2323

2424
export class SessionModel {
2525
private userId: string;

src/database/server/models/sessionGroup.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { eq } from 'drizzle-orm';
22
import { and, asc, desc } from 'drizzle-orm/expressions';
33

44
import { serverDB } from '@/database/server';
5-
import { idGenerator } from '@/database/server/utils/idGenerator';
5+
import { idGenerator } from '@/database/utils/idGenerator';
66

7-
import { SessionGroupItem, sessionGroups } from '../schemas/lobechat';
7+
import { SessionGroupItem, sessionGroups } from '../../schemas';
88

99
export class SessionGroupModel {
1010
private userId: string;

src/database/server/models/thread.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { and, desc } from 'drizzle-orm/expressions';
44
import { serverDB } from '@/database/server';
55
import { CreateThreadParams, ThreadStatus } from '@/types/topic';
66

7-
import { ThreadItem, threads } from '../schemas/lobechat';
7+
import { ThreadItem, threads } from '../../schemas';
88

99
const queryColumns = {
1010
createdAt: threads.createdAt,

src/database/server/models/topic.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { and, desc, eq, exists, isNull, like, or } from 'drizzle-orm/expressions
33

44
import { serverDB } from '@/database/server/core/db';
55

6-
import { NewMessage, TopicItem, messages, topics } from '../schemas/lobechat';
7-
import { idGenerator } from '../utils/idGenerator';
6+
import { NewMessage, TopicItem, messages, topics } from '../../schemas';
7+
import { idGenerator } from '@/database/utils/idGenerator';
88

99
export interface CreateTopicParams {
1010
favorite?: boolean;

src/database/server/models/user.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { UserGuide, UserPreference } from '@/types/user';
88
import { UserKeyVaults, UserSettings } from '@/types/user/settings';
99
import { merge } from '@/utils/merge';
1010

11-
import { NewUser, UserItem, userSettings, users } from '../schemas/lobechat';
11+
import { NewUser, UserItem, userSettings, users } from '../../schemas';
1212
import { SessionModel } from './session';
1313

1414
export class UserNotFoundError extends TRPCError {
File renamed without changes.

0 commit comments

Comments
 (0)