我有一个旧版 MySQL 数据库,用作 Django webapp 的基础。原来所有的表都使用MyISAM引擎,但是由于外键的要求,我把所有的表都改成了InnoDB,并在相关模型中添加了外键和唯一字段。
我将很快将此开发数据库导出到生产服务器,因此我使用 South 将数据模型迁移到数据库。但是,我可以看到没有一个表在表字段本身中具有显式的 PK、FK 和唯一约束,但它们显示在初始迁移脚本生成的 0001_initial.py 文件中。
我通过执行迁移
./manage.py schemamigration app --initial
./manage.py migrate app
Received Table Exists error, reran with --fake flag
./manage.py migrate app --fake
./manage.py migrate app
最后执行的命令没有错误。所以我的问题是,表不应该在执行数据迁移后设置明确的约束吗?