重构数据库模式,增加用户信息和笔记字段;更新配置文件路径,优化浏览器启动参数;添加用户和笔记索引;更新初始化脚本和快照文件

This commit is contained in:
2026-01-02 18:30:52 +08:00
parent 2c3bc79e6e
commit 2472cb0059
8 changed files with 547 additions and 20 deletions

View File

@@ -1,4 +1,4 @@
import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';
import { sqliteTable, text, integer, index } from 'drizzle-orm/sqlite-core';
import { randomUUID } from 'node:crypto';
export const cache = sqliteTable('cache', {
key: text('key').primaryKey(),
@@ -17,7 +17,7 @@ export const xhsNote = sqliteTable('xhs_note', {
data: text('data'),
tags: text('tags'),
status: text('status'),
status: text('status'), // 正常笔记,归档,禁止用户,已删除
authorUrl: text('author_url'),
cover: text('cover'),
@@ -25,16 +25,20 @@ export const xhsNote = sqliteTable('xhs_note', {
syncAt: integer('sync_at').notNull(),
star: integer('star'),
userId: text('user_id'),
pushedAt: integer('pushed_at'),
createdAt: integer('created_at').notNull(),
updatedAt: integer('updated_at').notNull(),
deletedAt: integer('deleted_at'),
});
}, (table) => ([
index('idx_xhs_note_user_id').on(table.userId),
index('idx_xhs_note_tags').on(table.tags),
]));
export const xhsUser = sqliteTable('xhs_user', {
id: text('id').primaryKey().$defaultFn(() => randomUUID()),
user_id: text('user_id').notNull(),
user_id: text('user_id').primaryKey(),
xsec_token: text('xsec_token'),
username: text('username'),
nickname: text('nickname'),
@@ -47,17 +51,23 @@ export const xhsUser = sqliteTable('xhs_user', {
data: text('data'),
tags: text('tags'),
bunTags: text('bun_tags'),
followersCount: integer('followers_count'),
followingCount: integer('following_count'),
status: text('status'),
status: text('status'), // 笔记用户(从笔记中添加,没有获取具体详情) 正常用户,封禁,已删除
syncStatus: integer('sync_status').notNull(),
syncAt: integer('sync_at').notNull(),
syncStatus: integer('sync_status').default(0).notNull(),
syncAt: integer('sync_at').default(0).notNull(),
star: integer('star'),
star: integer('star'), // 标记
createdAt: integer('created_at').notNull(),
updatedAt: integer('updated_at').notNull(),
createdAt: integer('created_at').default(Date.now()).notNull(),
updatedAt: integer('updated_at').default(Date.now()).notNull(),
deletedAt: integer('deleted_at'),
});
}, (table) => ([
index('idx_xhs_user_user_id').on(table.user_id),
index('idx_xhs_user_tags').on(table.tags),
index('idx_xhs_user_bun_tags').on(table.bunTags),
]));