Files
Jeffery f44200f543 feat: 完成 B 群組 — 資料層與核心領域模型
- 導入 Prisma 7.9.1 + SQLite(better-sqlite3 driver adapter),prisma.config.ts 管理連線設定
- 完整資料模型:User/Work/Character/CharacterAlias/EpisodicMemory/SemanticMemory/
  ProceduralRule/EmotionState/Relationship/SentimentLedgerEntry
- packages/db:Prisma Client 存取層(ESM,因 Prisma 7 產出的 generated client 僅支援 ESM)
- apps/api 隨之改為 ESM 以相容 packages/db
- packages/shared:新增角色/記憶/情緒/關係共用型別,api 與 web 皆從此匯入
- prisma/seed.ts:建立測試使用者與元氣型測試角色,含完整關係帳本與記憶種子資料
- apps/api:新增 GET /characters
- scripts/smoke/B.mjs:驗證資料表齊全、API 讀出種子角色、關係與記憶可寫入讀出
- 保留 Prisma 官方隨 CLI 附的 agent skill 文件(.agents/skills 等),供後續群組查閱

npm run restart && npm run smoke -- B 皆通過(B-V),A 群組冒煙測試無回歸。
2026-08-13 09:43:15 +08:00

2.0 KiB

prisma migrate diff

Compares database schemas and generates diffs (SQL or summary).

Command

prisma migrate diff [options]

What It Does

  • Compares two sources (--from-... and --to-...)
  • Sources can be:
    • Empty (empty)
    • Schema file (schema)
    • Migrations directory (migrations)
    • Database URL (url) or Configured Datasource (config-datasource)
  • Outputs the difference:
    • Human-readable summary (default)
    • SQL script (--script)

Options

Option Description
--script Render SQL script to stdout
--exit-code Exit 2 if changes detected, 0 if empty, 1 if error
--config Custom path to your Prisma config file

Sources (Must provide one from and one to)

  • --from-empty, --to-empty
  • --from-schema <path>, --to-schema <path>
  • --from-migrations <path>, --to-migrations <path>
  • --from-url <url>, --to-url <url>
  • --from-config-datasource, --to-config-datasource (uses prisma.config.ts)

Examples

Generate SQL for a schema change

Compare current production DB to your local schema:

prisma migrate diff \
  --from-url "$PROD_DB_URL" \
  --to-schema ./prisma/schema.prisma \
  --script

Review pending migrations

Compare database state to migrations directory:

prisma migrate diff \
  --from-config-datasource \
  --to-migrations ./prisma/migrations

Create baseline migration

Compare empty state to current schema:

prisma migrate diff \
  --from-empty \
  --to-schema ./prisma/schema.prisma \
  --script > prisma/migrations/0_init/migration.sql

Check for drift (CI)

Check if database matches schema:

prisma migrate diff \
  --from-config-datasource \
  --to-schema ./prisma/schema.prisma \
  --exit-code

Use Cases

  • Forward-generating migrations: Creating SQL without migrate dev.
  • Drift detection: Checking if DB is in sync.
  • Baselining: Creating initial migration from existing DB.
  • Debugging: Understanding what migrate dev would do.