游戏表保留 cover_asset_id 并标记退役
- GameDistributionGame 在原位恢复 cover_asset_id,注明退役、只占位不再写入,避免 SpacetimeDB 破坏性 schema 变更 - 新建与测试行构造补 cover_asset_id: None;migration.rs 注释与实施计划改成「保留退役」口径 - 重新生成 spacetime-client 该表绑定,补回 cover_asset_id 字段
This commit is contained in:
@@ -138,7 +138,7 @@
|
||||
- `packages/shared/src/contracts/gameDistribution.ts`:镜像同步;`GameDistributionGameSummary.coverObjectKey` / `screenshots` 维持 objectKey。
|
||||
|
||||
**Step 2 spacetime-module**
|
||||
- `GameDistributionGame`:删 `cover_asset_id`;`cover_object_key` 保留;`screenshots_json` 改为 objectKey 数组。
|
||||
- `GameDistributionGame`:**保留 `cover_asset_id` 并标记退役**(保持在原字段位置、宿主不再写入,仅占位,读逻辑不得依赖),避免 SpacetimeDB 破坏性 schema 变更;`cover_object_key` 保留;`screenshots_json` 改为 objectKey 数组。
|
||||
- `GameDistributionFrozenMetadata`:删 `cover_asset_id`;`screenshots: Vec<String>`(objectKey);删 `GameDistributionFrozenScreenshot.asset_id`。
|
||||
- `apply_game_distribution_frozen_metadata`、`GameDistributionCreateGameInput` / `GameDistributionUpdateMetadataInput` / `GameDistributionGameSnapshot` 同步。
|
||||
- 公开读授权:删除 `game_distribution_asset_has_public_read_grant(ctx, asset_object_id)` 及其在 `editor_project_storage::asset_location_has_public_showcase_read_grant` 的调用(发布图不再经素材库读);公开判定迁到新路由的域内判定(已发布且 active + objectKey 命中)。
|
||||
|
||||
@@ -14,6 +14,7 @@ pub struct GameDistributionGame {
|
||||
pub description: String,
|
||||
pub category: String,
|
||||
pub tags_json: String,
|
||||
pub cover_asset_id: Option<String>,
|
||||
pub author_name: Option<String>,
|
||||
pub author_avatar_url: Option<String>,
|
||||
pub device_support_desktop: bool,
|
||||
@@ -49,6 +50,7 @@ pub struct GameDistributionGameCols {
|
||||
pub description: __sdk::__query_builder::Col<GameDistributionGame, String>,
|
||||
pub category: __sdk::__query_builder::Col<GameDistributionGame, String>,
|
||||
pub tags_json: __sdk::__query_builder::Col<GameDistributionGame, String>,
|
||||
pub cover_asset_id: __sdk::__query_builder::Col<GameDistributionGame, Option<String>>,
|
||||
pub author_name: __sdk::__query_builder::Col<GameDistributionGame, Option<String>>,
|
||||
pub author_avatar_url: __sdk::__query_builder::Col<GameDistributionGame, Option<String>>,
|
||||
pub device_support_desktop: __sdk::__query_builder::Col<GameDistributionGame, bool>,
|
||||
@@ -80,6 +82,7 @@ impl __sdk::__query_builder::HasCols for GameDistributionGame {
|
||||
description: __sdk::__query_builder::Col::new(table_name, "description"),
|
||||
category: __sdk::__query_builder::Col::new(table_name, "category"),
|
||||
tags_json: __sdk::__query_builder::Col::new(table_name, "tags_json"),
|
||||
cover_asset_id: __sdk::__query_builder::Col::new(table_name, "cover_asset_id"),
|
||||
author_name: __sdk::__query_builder::Col::new(table_name, "author_name"),
|
||||
author_avatar_url: __sdk::__query_builder::Col::new(table_name, "author_avatar_url"),
|
||||
device_support_desktop: __sdk::__query_builder::Col::new(
|
||||
|
||||
@@ -738,6 +738,9 @@ pub struct GameDistributionGame {
|
||||
pub(crate) description: String,
|
||||
pub(crate) category: String,
|
||||
pub(crate) tags_json: String,
|
||||
/// 已退役:封面改用 `cover_object_key`(OSS objectKey)。字段保留且保持在原位,避免
|
||||
/// SpacetimeDB 破坏性 schema 变更;宿主不再写入,只占位,读逻辑不得依赖它。
|
||||
pub(crate) cover_asset_id: Option<String>,
|
||||
pub(crate) author_name: Option<String>,
|
||||
pub(crate) author_avatar_url: Option<String>,
|
||||
pub(crate) device_support_desktop: bool,
|
||||
@@ -2078,6 +2081,7 @@ fn create_game_distribution_game_tx(
|
||||
description: input.description.unwrap_or_default(),
|
||||
category,
|
||||
tags_json: input.tags_json,
|
||||
cover_asset_id: None,
|
||||
author_name: input.author_name,
|
||||
author_avatar_url: input.author_avatar_url,
|
||||
device_support_desktop: input.device_support_desktop,
|
||||
@@ -4398,6 +4402,7 @@ mod tests {
|
||||
description: String::new(),
|
||||
category: "其他".to_string(),
|
||||
tags_json: "[]".to_string(),
|
||||
cover_asset_id: None,
|
||||
author_name: None,
|
||||
author_avatar_url: None,
|
||||
device_support_desktop: true,
|
||||
|
||||
@@ -215,8 +215,8 @@ macro_rules! migration_tables {
|
||||
// 定价:游戏表末尾追加 price_mud_points(默认 0),购买记录含成交价快照与钱包流水 ID。
|
||||
// 资料随版本冻结:版本表末尾追加 metadata_json,游戏表末尾追加
|
||||
// cover_object_key / screenshots_json,均为可空列,旧行按“未冻结资料”处理。
|
||||
// 媒体去 assetId 化:游戏表删除 cover_asset_id,封面/截图只保留 OSS objectKey
|
||||
// (封面 cover_object_key、截图 screenshots_json 为 objectKey 字符串数组)。
|
||||
// 媒体去 assetId 化:游戏表保留 cover_asset_id 但标记退役(不再写入、仅占位),
|
||||
// 封面/截图改用 OSS objectKey(封面 cover_object_key、截图 screenshots_json 为 objectKey 字符串数组)。
|
||||
// 软删除:游戏表末尾追加可空 deleted_at;非空表示作者已删除该作品,
|
||||
// 行本身仍随迁移导出,版本行与冻结资料保持不可变。
|
||||
game_distribution_game,
|
||||
|
||||
Reference in New Issue
Block a user