Commit 17bd7d213a12ca3c568756b363c39330d4b457a5

Authored by yibo
1 parent f5fc6ea7

fix: 一键验收先判断空库再 init,避免 db:status 预先建出迁移表

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011X363N3XYVt41WUtnjtDZH
apps/voko-server/tools/db-is-empty.mjs 0 → 100644
  1 +#!/usr/bin/env node
  2 +/** 输出 voko 库是否为空(无任何表),供本地一键验收决定是否执行 db:init。不会建任何表。 */
  3 +import { createDb } from '@drama/db'
  4 +
  5 +import { databaseUrlFromArgs } from '../src/db/env-file.js'
  6 +
  7 +const db = createDb({ url: databaseUrlFromArgs(process.argv.slice(2)), pool: { min: 1, max: 1 } })
  8 +try {
  9 + const [rows] = await db.raw('SELECT COUNT(*) AS n FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE()')
  10 + console.log(Number(rows[0].n) === 0 ? 'empty' : 'not-empty')
  11 +} finally {
  12 + await db.destroy()
  13 +}
tools/scripts/verify-local.sh
@@ -9,8 +9,10 @@ node -e &#39;if (Number(process.versions.node.split(&quot;.&quot;)[0]) &lt; 24) { console.error(&quot; @@ -9,8 +9,10 @@ node -e &#39;if (Number(process.versions.node.split(&quot;.&quot;)[0]) &lt; 24) { console.error(&quot;
9 9
10 pnpm install 10 pnpm install
11 pnpm mysql:up 11 pnpm mysql:up
12 -if ! pnpm --silent --filter @voko/server db:status >/dev/null 2>&1; then 12 +if [ "$(node apps/voko-server/tools/db-is-empty.mjs)" = "empty" ]; then
13 pnpm --filter @voko/server db:init 13 pnpm --filter @voko/server db:init
  14 +else
  15 + pnpm --filter @voko/server db:migrate
14 fi 16 fi
15 pnpm dev:user admin@example.test admin123 17 pnpm dev:user admin@example.test admin123
16 18