oh-my-muse/muse-cloud/sql/dev/yudao-base-seed-postgres.sql
lili 038d2cf387 chore(p1-fullstack): 补 postgres 基座 schema(dev)+ 记录全栈启动 2 墙拆除与第 3 墙诊断
为活体 e2e 起全栈 muse-server,实测拆两墙、定位第三墙:
- 墙1(已修, commit 1f89007):member-server repackage classifier → mvn package 全项目 BUILD SUCCESS。
- 墙2(已解):本仓原无 postgres 基座 dump。新增 muse-cloud/sql/dev/yudao-base-schema-postgres.sql
  (system/infra/member 测试 schema 忠实翻 PostgreSQL,49 表)+ yudao-base-seed-postgres.sql
  (system_tenant id=1 等最小启动种子);实测灌库 0 失败,app Flyway(baseline-on-migrate)成功补
  Muse V1-V21、Tomcat 起、Spring 初始化。
- 墙3(定位,开 chip):muse-server 卡 bean 装配——5 个 biz.system CommonApi 是 @FeignClient
  (yudao-cloud RPC),单进程单体下未注册本地 bean。即项目从未以单体真正启动过(基线"未实跑"根因),
  需阶段7「cloud→monolith RPC 桥接」(真实接 system 本地 impl,非 permissive stub=假绿)。

knowledge §六 记全栈启动配方 + 三墙状态;进度总账加时间线。MVP #1 纵切仍以 4 个真实 PG IT 为正确性证据。
未推送(等用户)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 11:18:35 -07:00

90 lines
5.5 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- =============================================================================
-- Muse 全栈 app 最小启动种子PostgreSQL
-- 适用muse-serverspring profile = local,inframuse.security.mock-enable=true
-- 目标库已含【yudao 基座表 system_*/infra_*】+【Muse Flyway V1-V21】的 PG 库
-- 目标:让 app 启动成功 + 放行/服务 /app-api/muse/**
--
-- 关键结论(基于只读代码核查,非猜测):
-- 1) 每个 app-api 请求都会先走 TokenAuthenticationFilter
-- checkAccessToken(token) -> system_oauth2_access_token / system_oauth2_refresh_token
-- (查不到再回退到 mock 登录。这两张表必须【存在】yudao 基座表,已假定存在),
-- 但【无需任何种子行】——mock token 命中不了它们正是预期路径。
-- 2) muse.tenant.enable=true 时TenantSecurityWebFilter 对非 ignore 的 app-api 请求
-- 调用 validTenant(tenantId),校验 system_tenant存在 + status 启用 + 未过期。
-- => 这是本种子【唯一强制】的一行system_tenant(id=1)。
-- 3) validTenant 不连表查 system_tenant_package / system_users / system_role
-- 故这些表对“app 启动 + /app-api/muse/** 放行”不是必需;下文按“可选”给出,
-- 仅为后续 admin-api 登录 / 跨租户场景方便。
--
-- 列布局对齐真实 PG yudao 基座BaseDOdeleted 为 booleantenant_id 为 bigint
-- 审计列 creator/create_time/updater/update_time 均有默认值。id 显式给定INPUT 模式)。
-- 全部 INSERT 幂等ON CONFLICT (id) DO NOTHING可重复执行。
-- =============================================================================
-- -----------------------------------------------------------------------------
-- [必需] 默认租户 system_tenant(id=1)
-- status=0 启用CommonStatusEnum.ENABLE=0DISABLE=1
-- expire_time 设到 2099 远未来,避免 DateUtils.isExpired 触发 TENANT_EXPIRE
-- package_id=1仅为列非空占位yudao 无外键约束,不要求 package 行真实存在)
-- -----------------------------------------------------------------------------
INSERT INTO system_tenant
(id, name, contact_user_id, contact_name, contact_mobile, status, websites,
package_id, expire_time, account_count,
creator, create_time, updater, update_time, deleted)
VALUES
(1, '芋道源码', 1, 'Muse', '15601691300', 0, '',
1, TIMESTAMP '2099-12-31 23:59:59', 1000,
'1', CURRENT_TIMESTAMP, '1', CURRENT_TIMESTAMP, FALSE)
ON CONFLICT (id) DO NOTHING;
-- =============================================================================
-- 以下均为【可选】:/app-api/muse/** 的 mock 路径不需要它们。
-- 仅当你还想跑 admin-api 登录、或希望 getTenantIdList/套餐相关逻辑数据完整时再放开。
-- =============================================================================
-- -----------------------------------------------------------------------------
-- [可选] 租户套餐 system_tenant_package(id=1)status=0 启用
-- menu_ids 用 '[]' 占位DO 内是 Set<Long>JSON 数组字符串)
-- -----------------------------------------------------------------------------
INSERT INTO system_tenant_package
(id, name, status, remark, menu_ids,
creator, create_time, updater, update_time, deleted)
VALUES
(1, '系统租户套餐', 0, '最小启动占位', '[]',
'1', CURRENT_TIMESTAMP, '1', CURRENT_TIMESTAMP, FALSE)
ON CONFLICT (id) DO NOTHING;
-- -----------------------------------------------------------------------------
-- [可选] 管理员 system_users(id=1)status=0 启用tenant_id=1
-- password 为 admin 的 BCrypt 值yudao 默认 admin/admin123密文随版本可能不同
-- 如需精确登录请以本环境实际加密结果为准。app-api/muse/** 不读此表。
-- -----------------------------------------------------------------------------
INSERT INTO system_users
(id, username, password, nickname, remark, dept_id, post_ids,
email, mobile, sex, avatar, status, login_ip, login_date,
creator, create_time, updater, update_time, deleted, tenant_id)
VALUES
(1, 'admin',
'$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KFkOJ/.',
'芋道源码', '管理员', NULL, NULL,
'aoteman@126.com', '15612345678', 1, '', 0, '', NULL,
'1', CURRENT_TIMESTAMP, '1', CURRENT_TIMESTAMP, FALSE, 1)
ON CONFLICT (id) DO NOTHING;
-- -----------------------------------------------------------------------------
-- [可选] 超级管理员角色 system_role(id=1)type=1 内置data_scope=1 全部status=0 启用
-- -----------------------------------------------------------------------------
INSERT INTO system_role
(id, name, code, sort, data_scope, data_scope_dept_ids, status, type, remark,
creator, create_time, updater, update_time, deleted, tenant_id)
VALUES
(1, '超级管理员', 'super_admin', 1, 1, '', 0, 1, '内置角色',
'1', CURRENT_TIMESTAMP, '1', CURRENT_TIMESTAMP, FALSE, 1)
ON CONFLICT (id) DO NOTHING;
-- =============================================================================
-- 说明:本种子不创建任何表。若启动报 “relation does not exist”说明目标库缺少
-- 对应 yudao 基座表最常见system_oauth2_access_token / system_oauth2_refresh_token /
-- infra_* 系列),需要先用 yudao 基座 PG 建表脚本补齐,再执行本种子。
-- =============================================================================