# 数据库迁移说明 ## 当前迁移文件 - 新库初始化:`backend/app/db/sql/000_full_init.sql` - 已有数据库增量迁移:`backend/app/db/sql/005_storage_progress_migration.sql` - GPU 预留迁移:`backend/app/db/sql/006_gpu_reservations.sql` - 平台闭环迁移:`backend/app/db/sql/007_platform_completion.sql` - 离线部署使用:`docker/offline/src/backend/app/db/sql/000_full_init.sql` ## 执行方式 ```bash for migration in 005_storage_progress_migration.sql 006_gpu_reservations.sql 007_platform_completion.sql; do psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f "backend/app/db/sql/$migration" done ``` 迁移前应完成数据库备份,并保存以下结构快照: ```sql SELECT table_name, column_name, data_type FROM information_schema.columns WHERE table_schema = 'public' ORDER BY table_name, ordinal_position; ``` ## 本次迁移内容 - 为算力节点资源副本增加 `version_id` 和 `storage_object_id`,用于记录 MinIO 版本与本地缓存对应关系。 - 补齐 `storage_objects.metadata`、模型产物、数据集文件和数据转换任务的 MinIO 字段。 - 补齐评测任务软删除、创建者、租户和报告对象字段。 - 增加活动评测任务、资源副本和 MinIO 对象索引。 - 增加 GPU 预留表,统一训练、推理、评测的卡级占用约束。 - 增加模型导出创建者/租户/归档状态字段。 - 增加 MinIO 对象软删除清理、缓存版本校验和访问保护字段及清理任务表。 `000_full_init.sql` 已包含相同的幂等变更,新增数据库直接执行初始化脚本即可;已有数据库不要依赖容器重启自动完成迁移。