Django-South-x27;是否添加外键&;与数据库的唯一关系? 我有一个遗留的MySQL数据库,用作Django WebApp的基础。它最初将MyISAM引擎用于所有表,但由于外键要求,我将所有表更改为InnoDB,并将外键和唯一字段添加到相关模型中

Django-South-x27;是否添加外键&;与数据库的唯一关系? 我有一个遗留的MySQL数据库,用作Django WebApp的基础。它最初将MyISAM引擎用于所有表,但由于外键要求,我将所有表更改为InnoDB,并将外键和唯一字段添加到相关模型中,django,django-models,django-south,Django,Django Models,Django South,我将很快将这个开发数据库导出到生产服务器,所以我使用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

我将很快将这个开发数据库导出到生产服务器,所以我使用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

执行的最后一个命令没有错误。因此,我的问题是,在执行数据迁移后,表是否应该设置明确的约束?

当执行假迁移时,这意味着数据库中的迁移是假的。South假设迁移(0001_initial.py文件中的迁移)已完成。使用--false进行迁移时,不会发生数据库更改。您收到“表存在”错误,因为数据库中存在一些您将要创建的表。可能是在运行syncdb时创建的表