chore: 服务启动不再自动迁移数据库
schema 变更改为显式 db:push / 手动应用后再启动。
This commit is contained in:
@@ -27,7 +27,7 @@ Bun 工具链(选型见 `docs/design/技术选型.md`)。**Windows 上 `bun`
|
||||
|------|------|
|
||||
| `bun install` | 安装 / 链接 workspace 依赖(在仓库根) |
|
||||
| `bun run db:generate` | 生成 SQL 迁移(`packages/db/drizzle/`) |
|
||||
| `bun run db:push` | 推送到本地库(开发期) |
|
||||
| `bun run db:push` | 推送到本地库(开发期;**服务启动不自动迁**) |
|
||||
| `bun run db:studio` | Drizzle Studio 看库 |
|
||||
| `bun run typecheck` | 根 tsconfig 类型检查(不含 web `.vue`) |
|
||||
| `bun run dev:server` | 开发跑后端(hot reload) |
|
||||
|
||||
@@ -69,7 +69,7 @@ packages/
|
||||
```bash
|
||||
bun install
|
||||
cp .env.example .env # DATABASE_URL 指向你已有的 PostgreSQL
|
||||
bun run db:push # 开发期推送 schema
|
||||
bun run db:push # 开发期推送 schema(启动不自动迁)
|
||||
bun run dev:server # 后端(默认 18456)
|
||||
bun run dev:engine # 同步引擎(另开终端)
|
||||
bun run dev:web # 前端 Vite(5175)
|
||||
@@ -81,7 +81,7 @@ bun run dev:web # 前端 Vite(5175)
|
||||
|
||||
## 部署
|
||||
|
||||
生产形态:**Caddy**(前端静态 + `/api` 反代)+ **server / engine 单文件**(Bun `--compile`)+ PostgreSQL;启动时自动应用 `packages/db/drizzle` 迁移。开发不依赖本 Compose——把 `DATABASE_URL` 指到任意可用 PostgreSQL 即可。
|
||||
生产形态:**Caddy**(前端静态 + `/api` 反代)+ **server / engine 单文件**(Bun `--compile`)+ PostgreSQL。**迁移不随服务启动**——改表后先用 `db:push` / 手动应用 SQL,再起服务。开发不依赖本 Compose——把 `DATABASE_URL` 指到任意可用 PostgreSQL 即可。
|
||||
|
||||
### 起服务
|
||||
|
||||
@@ -92,7 +92,7 @@ docker compose up -d --build
|
||||
```
|
||||
|
||||
- 页面:`http://<服务器>/`;接口文档:`http://<服务器>/api/docs`
|
||||
- 升级:`git pull` 后重复 `docker compose up -d --build`(改表随启动迁移)
|
||||
- 升级:`git pull` → 有表变更时先应用 schema → 再 `docker compose up -d --build`
|
||||
|
||||
### 环境变量要点
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { appLogger, setupLogging } from "@new-api-key-usage/core";
|
||||
import { createDb, createRepos, runMigrations } from "@new-api-key-usage/db";
|
||||
import { createDb, createRepos } from "@new-api-key-usage/db";
|
||||
import { loadEnv } from "./env.ts";
|
||||
import { createSyncLoop } from "./loop.ts";
|
||||
|
||||
@@ -10,12 +9,6 @@ const log = appLogger("engine");
|
||||
|
||||
const db = createDb(env.DATABASE_URL);
|
||||
|
||||
const migrationsFolder =
|
||||
process.env.MIGRATIONS_FOLDER ??
|
||||
fileURLToPath(new URL("../../../packages/db/drizzle", import.meta.url));
|
||||
await runMigrations(db, migrationsFolder);
|
||||
log.info("数据库迁移已就绪");
|
||||
|
||||
const repos = createRepos(db);
|
||||
|
||||
const loop = createSyncLoop({
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { createApp } from "./app.ts";
|
||||
import { loadEnv } from "./env.ts";
|
||||
import { createDb, runMigrations } from "@new-api-key-usage/db";
|
||||
import { createDb } from "@new-api-key-usage/db";
|
||||
import { appLogger, setupLogging } from "@new-api-key-usage/core";
|
||||
|
||||
const env = loadEnv(process.env);
|
||||
@@ -9,13 +8,6 @@ setupLogging(env.LOG_LEVEL);
|
||||
|
||||
const db = createDb(env.DATABASE_URL);
|
||||
|
||||
const migrationsFolder =
|
||||
process.env.MIGRATIONS_FOLDER ??
|
||||
fileURLToPath(new URL("../../../packages/db/drizzle", import.meta.url));
|
||||
|
||||
await runMigrations(db, migrationsFolder);
|
||||
appLogger("server").info("数据库迁移已就绪");
|
||||
|
||||
const app = createApp({
|
||||
db,
|
||||
skKeyEncryptionSecret: env.SK_KEY_ENCRYPTION_SECRET,
|
||||
|
||||
Reference in New Issue
Block a user