SuperAPI AI 工具集

axiom-database-migration

数据与分析

查看项目

更新于 10-15 20:11

技能介绍

用途:为已有用户数据的生产应用安全演进数据库结构,避免数据丢失。核心原则是迁移一旦发布即不可修改,必须增量、幂等并充分测试。

主要能力:新增列(可空或带默认值)、修改列类型、添加外键、复杂结构重构,以及处理 FOREIGN KEY constraint failed、no such column、cannot add NOT NULL column 等错误。

使用方式:新增列用 ALTER TABLE ADD COLUMN,先可空后回填;改类型采用“加新列→迁移数据→弃用旧列(不删除)”;加外键采用“加列→填充数据→建索引”,SQLite 不支持给已有表加外键约束,需在应用层保证。复杂重构拆成多个迁移。GRDB 用 DatabaseMigrator 注册迁移并 migrate;SwiftData 用 VersionedSchema 与 SchemaMigrationPlan。

适用场景:iOS/macOS 等使用 SQLite、GRDB、SwiftData 的应用,尤其是已上线且有真实用户数据的版本升级。

限制与注意:禁止 DROP TABLE、修改已发布迁移、重建表、无默认值加 NOT NULL 列、删除列。迁移须包在事务中,创建前检查存在性,并同时测试全新安装与从旧版本升级两条路径。tvOS 可能因系统清理本地存储而面对全新数据库,迁移需同时兼顾创建与升级。具体收费、平台支持范围等资料暂未提供。