整理数据库迁移文件和开发脚本

- 合并迁移文件为 000001_init.sql(表结构)和 000002_seed.sql(初始数据)
- 删除旧的迁移文件(000002_chat.sql、000002_rbac_seed.sql、000007_chat_enhancements.sql)
- 简化 dev.sh 迁移逻辑,移除对已删除文件的引用
- 添加聊天相关表(chat_quick_replies)到初始化脚本

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
yml2213
2026-05-27 06:49:58 +08:00
co-authored by Claude Opus 4.7
parent 138f0514a9
commit 0d9fec01f3
5 changed files with 133 additions and 101 deletions
+98
View File
@@ -1,3 +1,15 @@
-- ============================================
-- 数据库初始化脚本
-- 包含所有表结构定义
-- ============================================
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- -------------------------------------------
-- 用户相关表
-- -------------------------------------------
CREATE TABLE users (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
phone VARCHAR(32) NOT NULL,
@@ -29,6 +41,10 @@ CREATE TABLE user_realname (
KEY idx_user_realname_provider_order_no (provider_order_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- -------------------------------------------
-- 游戏账号和商品表
-- -------------------------------------------
CREATE TABLE game_accounts (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
owner_id BIGINT UNSIGNED NOT NULL,
@@ -67,6 +83,10 @@ CREATE TABLE rental_listings (
KEY idx_rental_listings_filter (status, review_status, in_transaction, price)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- -------------------------------------------
-- 订单相关表
-- -------------------------------------------
CREATE TABLE rental_orders (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(64) NOT NULL,
@@ -136,6 +156,10 @@ CREATE TABLE handoff_records (
KEY idx_handoff_records_order_id (order_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- -------------------------------------------
-- 钱包相关表
-- -------------------------------------------
CREATE TABLE wallet_accounts (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT UNSIGNED NOT NULL,
@@ -166,6 +190,10 @@ CREATE TABLE wallet_ledger (
KEY idx_wallet_ledger_biz (biz_type, biz_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- -------------------------------------------
-- 纠纷和通知表
-- -------------------------------------------
CREATE TABLE disputes (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
order_id BIGINT UNSIGNED NOT NULL,
@@ -213,6 +241,10 @@ CREATE TABLE audit_logs (
KEY idx_audit_logs_biz (biz_type, biz_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- -------------------------------------------
-- 管理员和权限表
-- -------------------------------------------
CREATE TABLE admin_users (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(64) NOT NULL,
@@ -262,6 +294,10 @@ CREATE TABLE role_permissions (
UNIQUE KEY uk_role_permissions_role_permission (role_id, permission_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- -------------------------------------------
-- 系统配置表
-- -------------------------------------------
CREATE TABLE system_configs (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(128) NOT NULL,
@@ -272,3 +308,65 @@ CREATE TABLE system_configs (
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_system_configs_key (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- -------------------------------------------
-- 客服聊天表
-- -------------------------------------------
CREATE TABLE chat_conversations (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
order_id BIGINT UNSIGNED NOT NULL,
type VARCHAR(32) NOT NULL DEFAULT 'order_group',
title VARCHAR(128) NOT NULL,
status VARCHAR(32) NOT NULL DEFAULT 'active',
last_message_id BIGINT UNSIGNED NULL,
last_message_preview VARCHAR(255) NOT NULL DEFAULT '',
last_message_at DATETIME NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_chat_conversations_order_id (order_id),
KEY idx_chat_conversations_last_message_at (last_message_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE chat_participants (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
conversation_id BIGINT UNSIGNED NOT NULL,
participant_type VARCHAR(16) NOT NULL,
participant_id BIGINT UNSIGNED NOT NULL,
role VARCHAR(32) NOT NULL,
remark VARCHAR(128) NOT NULL DEFAULT '',
last_read_at DATETIME NULL,
joined_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_chat_participants_member (conversation_id, participant_type, participant_id),
KEY idx_chat_participants_participant (participant_type, participant_id),
KEY idx_chat_participants_conversation (conversation_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE chat_messages (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
conversation_id BIGINT UNSIGNED NOT NULL,
sender_type VARCHAR(16) NOT NULL,
sender_id BIGINT UNSIGNED NOT NULL DEFAULT 0,
sender_role VARCHAR(32) NOT NULL DEFAULT '',
content_type VARCHAR(32) NOT NULL DEFAULT 'text',
content TEXT NULL,
attachment_urls JSON NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
KEY idx_chat_messages_conversation_id (conversation_id, id),
KEY idx_chat_messages_created_at (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE chat_quick_replies (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
admin_user_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '0=全局, >0=个人',
title VARCHAR(64) NOT NULL COMMENT '快捷回复标题',
content TEXT NOT NULL COMMENT '回复内容',
sort_order INT NOT NULL DEFAULT 0 COMMENT '排序',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_admin_user_id (admin_user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='快捷回复模板';
SET FOREIGN_KEY_CHECKS = 1;