我使用Django和South作为Postgresql数据库的数据迁移工具。
我遇到的是这样的情况:如果我在模型中添加一个字段,该字段是与另一个模型相关的外键。我使用
生成迁移文件 ./manage.py schemamigration users --auto
但是如果尝试
则发生错误 ./manage.py migrate users 00xx
生成文件。
django.db.utils.IntegrityError: insert or update on table "users_userlikemessage" violates foreign key constraint "message_id_refs_id_57ff7c7c"
DETAIL: Key (message_id)=(0) is not present in table "message_article".
我为解决问题所做的只是从pdAdmin工具转到message_artile
模型的最后一行,并将行的id更改为0
,然后重新运行migrate命令
虽然这解决了迁移问题,但由于现有的FK约束,我无法将0
id更改回原来的状态。
所以,我的问题是:
0
值pk必须存在的原因是什么?0
有价值的pk是否有意义?