我有一个遗留的MySQL数据库,用作Django webapp应用程序的基础。它最初对所有表使用MyISAM引擎,但由于外键要求,我将所有表更改为InnoDB,并在相关模型中添加了外键和唯一字段。
我将很快将此开发数据库导出到生产服务器,因此我使用South将数据模型迁移到db。但是,我看到没有一个表在表字段中有显式的PK、FK和Unique约束,但它们显示在初始迁移脚本生成的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执行的最后一个命令没有错误。所以我的问题是,在执行数据迁移之后,表不应该设置显式约束吗?
发布于 2013-07-19 12:16:42
当您执行假迁移时,这意味着迁移在database.South中是假的假设迁移(在0001_initial.py文件中的迁移)是假的,当您使用-- complete.No迁移时,数据库将发生变化。您收到table exists错误,因为您要创建的表在database.May中存在的一些方式是在您运行syncdb时创建的表。
https://stackoverflow.com/questions/17735395
复制相似问题