合并数据库迁移文件,解决 --reset-db 数据不一致问题

- 将 000002_add_withdrawal_tables.sql 和 000003_add_encrypted_realname_fields.sql 合并到 000001_init.sql
- 在 user_realname 表创建时就包含 encrypted_name 和 encrypted_id_no 字段
- 在初始化脚本中直接创建提现相关表和权限
- 更新 dev.sh 和 deploy-prod.sh 的旧迁移清理逻辑
- 现在 --reset-db 可以一次性创建完整的数据库结构,避免字段缺失问题

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
yml
2026-06-06 13:26:34 +08:00
co-authored by Claude Opus 4.8
parent 5c830fe1f4
commit 3640111b8b
5 changed files with 96 additions and 120 deletions
+3 -3
View File
@@ -250,12 +250,12 @@ SQL
clean_legacy_migrations() {
local has_legacy
has_legacy="$(mysql_scalar "SELECT COUNT(*) FROM schema_migrations WHERE version IN ('000002_payment_refund_schema', '000003_add_indexes', '000004_add_support_status', '000005_add_announcements', '000006_insert_sample_announcements', '000007_add_announcement_permissions', '000008_fix_announcement_charset');")"
has_legacy="$(mysql_scalar "SELECT COUNT(*) FROM schema_migrations WHERE version IN ('000002_payment_refund_schema', '000003_add_indexes', '000004_add_support_status', '000005_add_announcements', '000006_insert_sample_announcements', '000007_add_announcement_permissions', '000008_fix_announcement_charset', '000002_add_withdrawal_tables', '000003_add_encrypted_realname_fields');")"
if [[ "${has_legacy}" != "0" ]]; then
log_warn "检测到旧的迁移记录000002-000008,正在清理..."
log_warn "检测到旧的迁移记录,正在清理..."
mysql_hfb --default-character-set=utf8mb4 -e \
"DELETE FROM schema_migrations WHERE version IN ('000002_payment_refund_schema', '000003_add_indexes', '000004_add_support_status', '000005_add_announcements', '000006_insert_sample_announcements', '000007_add_announcement_permissions', '000008_fix_announcement_charset');" "${MYSQL_DATABASE}"
"DELETE FROM schema_migrations WHERE version IN ('000002_payment_refund_schema', '000003_add_indexes', '000004_add_support_status', '000005_add_announcements', '000006_insert_sample_announcements', '000007_add_announcement_permissions', '000008_fix_announcement_charset', '000002_add_withdrawal_tables', '000003_add_encrypted_realname_fields');" "${MYSQL_DATABASE}"
log_success "已清理旧迁移记录"
fi
}