我最近将South添加到现有的Django项目中.我经历了整个过程
python manage.py syncdb python manage.py convert_to_south myapp python manage.py migrate myapp 0001 --fake
根据这个ticket的最后评论进行处理(因为我有一个自定义用户模型).
然后我想我做了一个架构迁移和迁移?我不完全记得,但我最终得到的是两个名为0001_initial.py和0002_initial.py的迁移文件,这些文件看起来并不完全正确.
$python manage.py schemamigration myapp --auto ? The field 'Photo.main_person' does not have a default specified,yet is NOT NULL. ? Since you are adding this field,you MUST specify a default ? value to use for existing rows. Would you like to: ? 1. Quit Now,and add a default to the field in models.py ? 2. Specify a one-off value to use for existing columns Now ? Please select a choice: 2 ? Please enter Python code for your one-off default value. ? The datetime module is available,so you can do e.g. datetime.date.today() >>> 1 + Added field main_person on myapp.Photo Created 0003_auto__add_field_photo_main_person.py. You can Now apply this migration with: ./manage.py migrate myapp $python manage.py migrate myapp Running migrations for myapp: - Migrating forwards to 0003_auto__add_field_photo_main_person. > myapp:0002_initial Fatal error - The following sql query Failed: CREATE TABLE "myapp_patient" ("id" serial NOT NULL PRIMARY KEY,"password" varchar(128) NOT NULL,"last_login" timestamp with time zone NOT NULL,"email" varchar(255) NOT NULL UNIQUE,"first_name" varchar(100) NOT NULL,"last_name" varchar(100) NOT NULL,"is_active" boolean NOT NULL,"is_admin" boolean NOT NULL,"is_staff" boolean NOT NULL) The error was: relation "myapp_patient" already exists Error in migration: myapp:0002_initial DatabaseError: relation "myapp_patient" already exists
因此它创建了迁移0003_auto__add_field_photo_main_person但似乎无法通过第二次迁移.应该/我可以删除第二个迁移文件吗?它与第一个完全相同,这似乎是造成问题的原因,但我在南方并不够精通,知道这是不是一个好主意.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。