新增旧玩法表阶段一清空迁移能力
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Successful in 3m49s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Native shell tests (pull_request) Failing after 15m19s

增加受 migration operator 保护的固定 63 张旧表清空 procedure

生成 spacetime-client procedure、输入和结果绑定

更新后端数据契约与两阶段退役决策记录
This commit is contained in:
2026-09-02 16:28:14 +08:00
parent 5de9554426
commit 7417f6d3f7
1314 changed files with 355 additions and 533426 deletions
+2 -52
View File
@@ -15,38 +15,6 @@ function readUtf8(relativePath) {
}
const forbiddenSnippets = [
{
file: 'server-rs/crates/spacetime-module/src/puzzle.rs',
snippet:
'.puzzle_work_profile()\n .iter()\n .filter(|row| row.owner_user_id == input.owner_user_id)',
reason: 'puzzle_work_profile 已有 by_puzzle_work_owner_user_id 索引',
},
{
file: 'server-rs/crates/spacetime-module/src/puzzle.rs',
snippet:
'.puzzle_work_profile()\n .iter()\n .filter(|row| row.publication_status == PuzzlePublicationStatus::Published)',
reason: 'puzzle_work_profile 已有 by_puzzle_work_publication_status 索引',
},
{
file: 'server-rs/crates/spacetime-module/src/puzzle.rs',
snippet:
'.puzzle_leaderboard_entry()\n .iter()\n .filter(|row| row.profile_id == profile_id && row.grid_size == grid_size)',
reason:
'puzzle_leaderboard_entry 已有 by_puzzle_leaderboard_profile_grid 索引',
},
{
file: 'server-rs/crates/spacetime-module/src/match3d.rs',
snippet:
'.match3d_work_profile()\n .iter()\n .filter(|row| {',
reason: 'match3d_work_profile 已有 owner/status 索引,列表不应整表过滤',
},
{
file: 'server-rs/crates/spacetime-module/src/visual_novel.rs',
snippet:
'.visual_novel_work_profile()\n .iter()\n .filter(|row| {',
reason:
'visual_novel_work_profile 已有 owner/status 索引,列表不应整表过滤',
},
{
file: 'server-rs/crates/spacetime-module/src/asset_metadata/objects.rs',
snippet:
@@ -123,20 +91,6 @@ const forbiddenSnippets = [
reason:
'tracking_daily_stat 已有 by_tracking_daily_stat_scope_day / event_day 索引,analytics 查询不应整表过滤',
},
{
file: 'server-rs/crates/spacetime-module/src/custom_world.rs',
snippet:
'.custom_world_profile()\n .iter()\n .find(|row| {',
reason:
'custom_world_profile owner 维度已有 by_custom_world_profile_owner_user_id 索引',
},
{
file: 'server-rs/crates/spacetime-module/src/custom_world.rs',
snippet:
'.custom_world_profile()\n .iter()\n .filter(|profile| {',
reason:
'custom_world_profile Published 同步已有 by_custom_world_profile_publication_status 索引',
},
{
file: 'server-rs/crates/spacetime-module/src/editor_project_storage.rs',
snippet:
@@ -149,8 +103,8 @@ const forbiddenSnippets = [
const procedureResultFiles = [];
const mapperCompatibilityFiles = [
'server-rs/crates/spacetime-client/src/mapper.rs',
'server-rs/crates/spacetime-client/src/lib.rs',
'server-rs/crates/spacetime-client/src/active/mapper.rs',
'server-rs/crates/spacetime-client/src/active.rs',
];
const bigFishRuntimeFiles = [];
@@ -188,10 +142,6 @@ const failures = [];
for (const rule of forbiddenSnippets) {
if (
rule.file.endsWith('/puzzle.rs') ||
rule.file.endsWith('/match3d.rs') ||
rule.file.endsWith('/visual_novel.rs') ||
rule.file.endsWith('/custom_world.rs') ||
rule.reason.startsWith('profile_save_archive') ||
rule.reason.startsWith('profile_played_world')
) {