feat(db): 将种子数据改为 SQL 命令形式

新增 backend/seeds/H001.sql,通过 sh scripts/dev.sh seed H001
经由 docker exec 执行,无需本地 mysql 客户端。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-04-07 23:02:15 +08:00
parent 902c3c3046
commit 39fe1da800
2 changed files with 313 additions and 16 deletions
+252
View File
@@ -0,0 +1,252 @@
-- =============================================================
-- 测试门店 H001 种子数据
-- 用法: sh scripts/dev.sh seed H001
-- 前置条件: 数据库表结构已创建(启动一次后端即可)
-- 说明: 每次执行会清空并重新写入所有业务数据
-- =============================================================
SET FOREIGN_KEY_CHECKS = 0;
-- ── 清空(子表先清)────────────────────────────────────────
TRUNCATE TABLE inventory_check_items;
TRUNCATE TABLE inventory_checks;
TRUNCATE TABLE inventory_logs;
TRUNCATE TABLE inventories;
TRUNCATE TABLE stock_out_items;
TRUNCATE TABLE stock_out_orders;
TRUNCATE TABLE stock_in_items;
TRUNCATE TABLE stock_in_orders;
TRUNCATE TABLE finance_records;
TRUNCATE TABLE number_rules;
TRUNCATE TABLE partners;
TRUNCATE TABLE warehouses;
TRUNCATE TABLE products;
TRUNCATE TABLE product_categories;
TRUNCATE TABLE users;
TRUNCATE TABLE shops;
SET FOREIGN_KEY_CHECKS = 1;
-- ── 门店 ────────────────────────────────────────────────────
-- id=1
INSERT INTO shops (id, name, code, address, phone, manager_name, created_at, updated_at)
VALUES (1, '测试酒库门店', 'H001', '北京市朝阳区建国路88号', '010-12345678', '张总', NOW(), NOW());
-- ── 用户(密码均为 password123)────────────────────────────
-- bcrypt(password123, cost=10)
SET @pwd = '$2a$10$BNHhJoKHryCCEyKqM.11TeLOnSCV8rNtOqvKHUqaczETXLtH/YE1m';
-- id=1 admin, id=2 operator, id=3 readonly
INSERT INTO users (id, shop_id, username, password_hash, real_name, phone, role, is_active, created_at, updated_at) VALUES
(1, 1, 'admin', @pwd, '张三(管理员)', '13800000001', 'admin', 1, NOW(), NOW()),
(2, 1, 'operator', @pwd, '李四(操作员)', '13800000002', 'operator', 1, NOW(), NOW()),
(3, 1, 'test', @pwd, '王五(只读)', '13800000003', 'readonly', 1, NOW(), NOW());
-- ── 仓库 ────────────────────────────────────────────────────
-- id=1 主仓库, id=2 进口酒专库
INSERT INTO warehouses (id, shop_id, name, location, is_default, created_at, updated_at) VALUES
(1, 1, '主仓库', 'A栋1层东侧', 1, NOW(), NOW()),
(2, 1, '进口酒专库', 'B栋2层恒温区', 0, NOW(), NOW());
-- ── 商品分类 ────────────────────────────────────────────────
-- id=1 白酒, id=2 进口烈酒
INSERT INTO product_categories (id, shop_id, name, sort_order, created_at, updated_at) VALUES
(1, 1, '白酒', 1, NOW(), NOW()),
(2, 1, '进口烈酒', 2, NOW(), NOW());
-- ── 商品 ────────────────────────────────────────────────────
-- id=1~6 白酒, id=7~8 进口烈酒
INSERT INTO products (id, shop_id, code, barcode, name, series, spec, unit, category_id, brand,
purchase_price, sale_price, min_stock, remark, created_at, updated_at) VALUES
(1, 1, 'MT-001', '6901234567890', '飞天茅台 53度 500ml', '茅台', '500ml/瓶', '', 1, '贵州茅台', 2350, 2800, 10, '酱香型白酒,53度,飞天系列', NOW(), NOW()),
(2, 1, 'WLY-001', '6902345678901', '五粮液 52度 500ml', '五粮液', '500ml/瓶', '', 1, '宜宾五粮液', 950, 1200, 6, '浓香型白酒,52度,普五系列', NOW(), NOW()),
(3, 1, 'YH-001', '6903456789012', '洋河梦之蓝 M6 500ml', '洋河', '500ml/瓶', '', 1, '江苏洋河', 560, 680, 6, '浓香型,绵柔苏酒代表', NOW(), NOW()),
(4, 1, 'LZ-001', '6904567890123', '泸州老窖 特曲 500ml', '泸州老窖', '500ml/瓶', '', 1, '泸州老窖', 420, 520, 6, '浓香鼻祖,特曲系列', NOW(), NOW()),
(5, 1, 'JNC-001', '6905678901234', '剑南春 水晶剑 500ml', '剑南春', '500ml/瓶', '', 1, '剑南春', 390, 480, 6, '浓香型,绵竹名酒', NOW(), NOW()),
(6, 1, 'LJ-001', '6906789012345', '郎酒 红花郎10 500ml', '郎酒', '500ml/瓶', '', 1, '古蔺郎酒', 320, 420, 6, '酱香型,赤水河畔酿造', NOW(), NOW()),
(7, 1, 'LF-001', '3760093550058', '拉菲古堡 2018 750ml', '波尔多', '750ml/瓶', '', 2, 'Château Lafite', 3800, 5200, 3, '波尔多一级名庄,2018年份', NOW(), NOW()),
(8, 1, 'RTM-001', '3021691010008', '人头马 VSOP 700ml', '人头马', '700ml/瓶', '', 2, 'Rémy Martin', 480, 680, 3, '法国干邑,VSOP级别', NOW(), NOW());
-- ── 往来单位 ────────────────────────────────────────────────
-- id=1~4 供应商, id=5~7 客户
INSERT INTO partners (id, shop_id, code, name, type, contact, phone, address, bank_account,
credit_limit, balance, remark, created_at, updated_at) VALUES
(1, 1, 'SUP001', '贵州茅台酒股份有限公司', 'supplier', '张经理', '0851-22222001', '贵州省仁怀市茅台镇', '工商银行仁怀支行 6222 0000 0001 0001', 5000000, 0, '茅台系列直供,账期30天', NOW(), NOW()),
(2, 1, 'SUP002', '四川五粮液股份有限公司', 'supplier', '王总监', '0831-33333001', '四川省宜宾市翠屏区', '建设银行宜宾支行 6227 0000 0001 0002', 3000000, 0, '五粮液系列授权经销', NOW(), NOW()),
(3, 1, 'SUP003', '江苏洋河酒厂股份有限公司', 'supplier', '赵主任', '0527-44444001', '江苏省宿迁市洋河新区', '农业银行宿迁支行 6228 0000 0001 0003', 2000000, 0, '洋河梦之蓝系列直供', NOW(), NOW()),
(4, 1, 'SUP004', '四川郎酒股份有限公司', 'supplier', '刘经理', '0830-55555001', '四川省古蔺县二郎镇', '中国银行古蔺支行 6013 0000 0001 0004', 1500000, 0, '郎酒红花郎系列', NOW(), NOW()),
(5, 1, 'CUS001', '北京君悦大酒店', 'customer', '李采购', '010-65888001', '北京市朝阳区建国门外大街2号', '中信银行北京朝阳支行 6217 0000 0002 0001', 500000, 0, '五星级酒店,月结', NOW(), NOW()),
(6, 1, 'CUS002', '上海外滩华尔道夫酒店', 'customer', '陈主任', '021-62308001', '上海市黄浦区中山东一路2号', '浦发银行上海黄浦支行 6210 0000 0002 0002', 800000, 0, '豪华酒店,按季结算', NOW(), NOW()),
(7, 1, 'CUS003', '广州白天鹅宾馆', 'customer', '吴采购', '020-81886001', '广州市荔湾区沙面南街1号', '招商银行广州荔湾支行 6225 0000 0002 0003', 300000, 0, '高端宾馆,月结30天', NOW(), NOW());
-- ── 编号规则 ────────────────────────────────────────────────
INSERT INTO number_rules (id, shop_id, type, prefix, current_no, date_format, updated_at) VALUES
(1, 1, 'stock_in', 'RK', 5, 'YYYYMMDD', NOW()),
(2, 1, 'stock_out', 'CK', 4, 'YYYYMMDD', NOW()),
(3, 1, 'inventory_check', 'PD', 1, 'YYYYMMDD', NOW());
-- ── 入库单 ──────────────────────────────────────────────────
-- #1 已审核: 飞天茅台+五粮液,主仓库,茅台供应商 | 总额=339000
INSERT INTO stock_in_orders (id, shop_id, order_no, type, warehouse_id, partner_id, operator_id,
reviewer_id, status, order_date, total_amount, reviewed_at, remark, created_at, updated_at) VALUES
(1, 1, 'RK20260401001', 'purchase', 1, 1, 1,
1, 'approved', DATE_SUB(CURDATE(), INTERVAL 6 DAY), 339000,
DATE_SUB(NOW(), INTERVAL 5 DAY), '茅台系列首批入库,含飞天茅台及五粮液', NOW(), NOW());
INSERT INTO stock_in_items (id, order_id, shop_id, product_id, quantity, unit_price, total_price,
batch_no, remark, created_at, updated_at) VALUES
(1, 1, 1, 1, 120, 2350, 282000, 'BATCH-MT-2024001', '飞天茅台 2024年第一批次', NOW(), NOW()),
(2, 1, 1, 2, 60, 950, 57000, 'BATCH-WLY-2024001', '五粮液普五 2024年批次', NOW(), NOW());
-- #2 已审核: 洋河+泸州+剑南春,主仓库,五粮液供应商 | 总额=51360
INSERT INTO stock_in_orders (id, shop_id, order_no, type, warehouse_id, partner_id, operator_id,
reviewer_id, status, order_date, total_amount, reviewed_at, remark, created_at, updated_at) VALUES
(2, 1, 'RK20260403001', 'purchase', 1, 2, 2,
1, 'approved', DATE_SUB(CURDATE(), INTERVAL 4 DAY), 51360,
DATE_SUB(NOW(), INTERVAL 3 DAY), '浓香型白酒补货入库', NOW(), NOW());
INSERT INTO stock_in_items (id, order_id, shop_id, product_id, quantity, unit_price, total_price,
batch_no, remark, created_at, updated_at) VALUES
(3, 2, 1, 3, 48, 560, 26880, 'BATCH-YH-2024003', '洋河梦之蓝 M6 3月批次', NOW(), NOW()),
(4, 2, 1, 4, 36, 420, 15120, 'BATCH-LZ-2024002', '泸州老窖特曲 春季批次', NOW(), NOW()),
(5, 2, 1, 5, 24, 390, 9360, 'BATCH-JNC-2024001', '剑南春水晶剑 首批', NOW(), NOW());
-- #3 已审核: 拉菲+人头马,进口酒专库,郎酒供应商(代理进口)| 总额=108480
INSERT INTO stock_in_orders (id, shop_id, order_no, type, warehouse_id, partner_id, operator_id,
reviewer_id, status, order_date, total_amount, reviewed_at, remark, created_at, updated_at) VALUES
(3, 1, 'RK20260404001', 'purchase', 2, 4, 2,
1, 'approved', DATE_SUB(CURDATE(), INTERVAL 3 DAY), 108480,
DATE_SUB(NOW(), INTERVAL 2 DAY), '进口烈酒专库入库,含拉菲及人头马', NOW(), NOW());
INSERT INTO stock_in_items (id, order_id, shop_id, product_id, quantity, unit_price, total_price,
batch_no, remark, created_at, updated_at) VALUES
(6, 3, 1, 7, 24, 3800, 91200, 'BATCH-LF-2018001', '拉菲古堡2018,原箱', NOW(), NOW()),
(7, 3, 1, 8, 36, 480, 17280, 'BATCH-RTM-2024001', '人头马VSOP2024年进口', NOW(), NOW());
-- #4 待审核: 郎酒补货,主仓库 | 总额=19200
INSERT INTO stock_in_orders (id, shop_id, order_no, type, warehouse_id, partner_id, operator_id,
status, order_date, total_amount, remark, created_at, updated_at) VALUES
(4, 1, 'RK20260406001', 'purchase', 1, 4, 2,
'pending', DATE_SUB(CURDATE(), INTERVAL 1 DAY), 19200,
'郎酒红花郎补货,待仓库管理员审核', NOW(), NOW());
INSERT INTO stock_in_items (id, order_id, shop_id, product_id, quantity, unit_price, total_price,
batch_no, remark, created_at, updated_at) VALUES
(8, 4, 1, 6, 60, 320, 19200, 'BATCH-LJ-2024002', '郎酒红花郎10 第二批次', NOW(), NOW());
-- #5 草稿: 追加茅台,主仓库 | 总额=142800
INSERT INTO stock_in_orders (id, shop_id, order_no, type, warehouse_id, partner_id, operator_id,
status, order_date, total_amount, remark, created_at, updated_at) VALUES
(5, 1, 'RK20260407001', 'purchase', 1, 1, 2,
'draft', CURDATE(), 142800,
'茅台追加订货,草稿中', NOW(), NOW());
INSERT INTO stock_in_items (id, order_id, shop_id, product_id, quantity, unit_price, total_price,
batch_no, remark, created_at, updated_at) VALUES
(9, 5, 1, 1, 60, 2380, 142800, 'BATCH-MT-2024002', '飞天茅台 第二批次', NOW(), NOW());
-- ── 出库单 ──────────────────────────────────────────────────
-- #1 已审核: 君悦大酒店,主仓库 | 总额=48960
INSERT INTO stock_out_orders (id, shop_id, order_no, type, warehouse_id, partner_id, operator_id,
reviewer_id, status, order_date, total_amount, reviewed_at, remark, created_at, updated_at) VALUES
(1, 1, 'CK20260404001', 'sale', 1, 5, 2,
1, 'approved', DATE_SUB(CURDATE(), INTERVAL 3 DAY), 48960,
DATE_SUB(NOW(), INTERVAL 2 DAY), '北京君悦大酒店 4月份定期供货', NOW(), NOW());
INSERT INTO stock_out_items (id, order_id, shop_id, product_id, quantity, unit_price, total_price,
remark, created_at, updated_at) VALUES
(1, 1, 1, 1, 12, 2800, 33600, '飞天茅台 12瓶,整箱出库', NOW(), NOW()),
(2, 1, 1, 2, 6, 1200, 7200, '五粮液普五 6瓶', NOW(), NOW()),
(3, 1, 1, 3, 12, 680, 8160, '洋河梦之蓝 M6 12瓶', NOW(), NOW());
-- #2 已审核: 外滩华尔道夫,进口酒专库 | 总额=39360
INSERT INTO stock_out_orders (id, shop_id, order_no, type, warehouse_id, partner_id, operator_id,
reviewer_id, status, order_date, total_amount, reviewed_at, remark, created_at, updated_at) VALUES
(2, 1, 'CK20260405001', 'sale', 2, 6, 2,
1, 'approved', DATE_SUB(CURDATE(), INTERVAL 2 DAY), 39360,
DATE_SUB(NOW(), INTERVAL 1 DAY), '上海外滩华尔道夫 进口酒专属采购', NOW(), NOW());
INSERT INTO stock_out_items (id, order_id, shop_id, product_id, quantity, unit_price, total_price,
remark, created_at, updated_at) VALUES
(4, 2, 1, 7, 6, 5200, 31200, '拉菲古堡2018 6瓶', NOW(), NOW()),
(5, 2, 1, 8, 12, 680, 8160, '人头马VSOP 12瓶', NOW(), NOW());
-- #3 待审核: 广州白天鹅宾馆,主仓库 | 总额=23280
INSERT INTO stock_out_orders (id, shop_id, order_no, type, warehouse_id, partner_id, operator_id,
status, order_date, total_amount, remark, created_at, updated_at) VALUES
(3, 1, 'CK20260406001', 'sale', 1, 7, 2,
'pending', DATE_SUB(CURDATE(), INTERVAL 1 DAY), 23280,
'广州白天鹅宾馆 月度供货申请', NOW(), NOW());
INSERT INTO stock_out_items (id, order_id, shop_id, product_id, quantity, unit_price, total_price,
remark, created_at, updated_at) VALUES
(6, 3, 1, 4, 24, 520, 12480, '泸州老窖特曲 24瓶', NOW(), NOW()),
(7, 3, 1, 5, 12, 480, 5760, '剑南春水晶剑 12瓶', NOW(), NOW()),
(8, 3, 1, 6, 12, 420, 5040, '郎酒红花郎10 12瓶', NOW(), NOW());
-- #4 草稿: 君悦追加,主仓库 | 总额=16800
INSERT INTO stock_out_orders (id, shop_id, order_no, type, warehouse_id, partner_id, operator_id,
status, order_date, total_amount, remark, created_at, updated_at) VALUES
(4, 1, 'CK20260407001', 'sale', 1, 5, 2,
'draft', CURDATE(), 16800,
'北京君悦追加订单,草稿中', NOW(), NOW());
INSERT INTO stock_out_items (id, order_id, shop_id, product_id, quantity, unit_price, total_price,
remark, created_at, updated_at) VALUES
(9, 4, 1, 1, 6, 2800, 16800, '飞天茅台 追加 6瓶', NOW(), NOW());
-- ── 库存(已审核单据计算后的实时库存)────────────────────
-- wh1: 飞天茅台 120-12=108, 五粮液 60-6=54, 洋河 48-12=36, 泸州 36, 剑南春 24
-- wh2: 拉菲 24-6=18, 人头马 36-12=24
INSERT INTO inventories (id, shop_id, warehouse_id, product_id, quantity, updated_at) VALUES
(1, 1, 1, 1, 108, NOW()),
(2, 1, 1, 2, 54, NOW()),
(3, 1, 1, 3, 36, NOW()),
(4, 1, 1, 4, 36, NOW()),
(5, 1, 1, 5, 24, NOW()),
(6, 1, 2, 7, 18, NOW()),
(7, 1, 2, 8, 24, NOW());
-- ── 库存流水 ────────────────────────────────────────────────
-- 入库单 #1 (ref_id=1): 飞天茅台+五粮液 → wh1
INSERT INTO inventory_logs (id, shop_id, warehouse_id, product_id, direction, quantity, qty_before, qty_after,
ref_type, ref_id, operator_id, created_at) VALUES
( 1, 1, 1, 1, 'in', 120, 0, 120, 'stock_in', 1, 1, NOW()),
( 2, 1, 1, 2, 'in', 60, 0, 60, 'stock_in', 1, 1, NOW());
-- 入库单 #2 (ref_id=2): 洋河+泸州+剑南春 → wh1
INSERT INTO inventory_logs (id, shop_id, warehouse_id, product_id, direction, quantity, qty_before, qty_after,
ref_type, ref_id, operator_id, created_at) VALUES
( 3, 1, 1, 3, 'in', 48, 0, 48, 'stock_in', 2, 1, NOW()),
( 4, 1, 1, 4, 'in', 36, 0, 36, 'stock_in', 2, 1, NOW()),
( 5, 1, 1, 5, 'in', 24, 0, 24, 'stock_in', 2, 1, NOW());
-- 入库单 #3 (ref_id=3): 拉菲+人头马 → wh2
INSERT INTO inventory_logs (id, shop_id, warehouse_id, product_id, direction, quantity, qty_before, qty_after,
ref_type, ref_id, operator_id, created_at) VALUES
( 6, 1, 2, 7, 'in', 24, 0, 24, 'stock_in', 3, 1, NOW()),
( 7, 1, 2, 8, 'in', 36, 0, 36, 'stock_in', 3, 1, NOW());
-- 出库单 #1 (ref_id=1): 飞天茅台+五粮液+洋河 ← wh1
INSERT INTO inventory_logs (id, shop_id, warehouse_id, product_id, direction, quantity, qty_before, qty_after,
ref_type, ref_id, operator_id, created_at) VALUES
( 8, 1, 1, 1, 'out', 12, 120, 108, 'stock_out', 1, 1, NOW()),
( 9, 1, 1, 2, 'out', 6, 60, 54, 'stock_out', 1, 1, NOW()),
(10, 1, 1, 3, 'out', 12, 48, 36, 'stock_out', 1, 1, NOW());
-- 出库单 #2 (ref_id=2): 拉菲+人头马 ← wh2
INSERT INTO inventory_logs (id, shop_id, warehouse_id, product_id, direction, quantity, qty_before, qty_after,
ref_type, ref_id, operator_id, created_at) VALUES
(11, 1, 2, 7, 'out', 6, 24, 18, 'stock_out', 2, 1, NOW()),
(12, 1, 2, 8, 'out', 12, 36, 24, 'stock_out', 2, 1, NOW());
-- ── 财务记录 ────────────────────────────────────────────────
-- 出库单 #1 对应应收款 + 已回款
INSERT INTO finance_records (id, shop_id, partner_id, type, amount, balance, ref_type, ref_id,
operator_id, record_date, remark, created_at, updated_at) VALUES
(1, 1, 5, 'receivable', 48960, 48960, 'stock_out', 1, 1,
DATE_SUB(CURDATE(), INTERVAL 3 DAY), '君悦大酒店4月供货应收款', NOW(), NOW()),
(2, 1, 6, 'receivable', 39360, 39360, 'stock_out', 2, 1,
DATE_SUB(CURDATE(), INTERVAL 2 DAY), '外滩华尔道夫进口酒应收款', NOW(), NOW()),
(3, 1, 5, 'receipt', 48960, 0, 'stock_out', 1, 1,
DATE_SUB(CURDATE(), INTERVAL 1 DAY), '君悦大酒店回款,结清', NOW(), NOW());
+61 -16
View File
@@ -6,15 +6,15 @@ fi
# dev.sh — 本地开发环境管理
#
# 启动:
# bash scripts/dev.sh run # 启动前后端(后端无改动则跳过重启)
# bash scripts/dev.sh run --force # 强制重启后端
# bash scripts/dev.sh --backend-only # 仅启动后端
# bash scripts/dev.sh --frontend-only # 仅启动前端
# sh scripts/dev.sh run # 启动前后端(后端无改动则跳过重启)
# sh scripts/dev.sh run --force # 强制重启后端
# sh scripts/dev.sh --backend-only # 仅启动后端
# sh scripts/dev.sh --frontend-only # 仅启动前端
#
# 数据库:
# bash scripts/dev.sh reset # 删表重建 + 写入测试数据
# bash scripts/dev.sh seed # 写入测试数据(已存在则跳过
# bash scripts/dev.sh clear # 清空所有数据(不写入)
# sh scripts/dev.sh seed H001 # 清空并写入 H001 测试数据(SQL 文件)
# sh scripts/dev.sh reset # 删表重建(AutoMigrate
# sh scripts/dev.sh clear # 清空所有业务数据
set -e
@@ -30,6 +30,46 @@ BACKEND_HASH_FILE="$LOG_DIR/backend.hash"
mkdir -p "$LOG_DIR"
# ── seed 命令 ────────────────────────────────────────────────
# 用法: cmd_seed <shop_code>
# 从 backend/config/config.yaml 读取 DSN,执行 backend/seeds/<shop>.sql
cmd_seed() {
local shop="${1:-}"
if [ -z "$shop" ]; then
error "用法: sh scripts/dev.sh seed <shop_code> 示例: sh scripts/dev.sh seed H001"
exit 1
fi
local sql_file="$ROOT/backend/seeds/${shop}.sql"
if [ ! -f "$sql_file" ]; then
error "种子文件不存在: $sql_file"
exit 1
fi
# 从 docker-compose.yml 读取容器名和数据库信息
local compose_file="$ROOT/deploy/docker-compose.yml"
local container db_pass db_name
container=$(grep 'container_name:' "$compose_file" | grep -i mysql | head -1 | sed 's/.*container_name: *//')
db_pass=$(grep 'MYSQL_ROOT_PASSWORD:' "$compose_file" | head -1 | sed 's/.*MYSQL_ROOT_PASSWORD: *//')
db_name=$(grep 'MYSQL_DATABASE:' "$compose_file" | head -1 | sed 's/.*MYSQL_DATABASE: *//')
# 检查容器是否运行
if ! docker ps --format '{{.Names}}' | grep -q "^${container}$"; then
error "MySQL 容器 '${container}' 未运行,请先执行: docker compose -f deploy/docker-compose.yml up -d"
exit 1
fi
info "写入 ${shop} 种子数据 → 容器 ${container} / ${db_name}"
docker exec -i "$container" mysql -uroot -p"$db_pass" "$db_name" < "$sql_file"
success "${shop} 种子数据写入完成"
echo ""
echo " 登录信息:"
echo " 门店编号: ${shop}"
echo " admin / password123"
echo " operator / password123"
echo " test / password123"
}
# ── 颜色输出 ──────────────────────────────────────────────
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
@@ -52,15 +92,20 @@ case "$COMMAND" in
run)
[ "${2:-}" = "--force" ] && FORCE=true
;;
seed|reset|clear)
# seed / reset / clear 三个命令
SEED_ARG=""
[ "$COMMAND" = "reset" ] && SEED_ARG="--reset"
[ "$COMMAND" = "clear" ] && SEED_ARG="--clear"
[ -n "${2:-}" ] && SEED_ARG="$2"
info "写入初始测试数据..."
seed)
cmd_seed "${2:-}"
exit 0
;;
reset)
info "删表重建(AutoMigrate..."
cd "$BACKEND_DIR"
go run cmd/seed/main.go $SEED_ARG
go run cmd/seed/main.go --reset
exit 0
;;
clear)
info "清空所有业务数据..."
cd "$BACKEND_DIR"
go run cmd/seed/main.go --clear
exit 0
;;
--backend-only)
@@ -74,7 +119,7 @@ case "$COMMAND" in
;;
*)
error "未知命令: $COMMAND"
echo "用法: bash scripts/dev.sh [run [--force] | reset | clear | seed | --backend-only | --frontend-only]"
echo "用法: sh scripts/dev.sh [run [--force] | seed <shop> | reset | clear | --backend-only | --frontend-only]"
exit 1
;;
esac