django南方如何添加新模型

时间:2015-03-01 07:00:11

标签: python django django-models django-south

我第一次使用Django South。我已经成功使用Django South更新我的数据库而不删除我的整个数据库。 这是查询django south migration error relation “photo_photo” already exists

但每当我想添加新模型时,我都会遇到错误。提到我已经在admin.py文件中添加了所有人员

以上给出的查询是关于现有模型中的更改,谢天谢地我已经成功更新了我的数据库。

但是在从South Tutorial执行相同的命令之后,我无法在我的数据库中添加新模型,显然模型显示在django管理站点中,但是在我点击该模型之后或之后我想保存任何东西到该模型,我面临以下错误

DatabaseError at /admin/photo/userreferralcode/
relation "photo_userreferralcode" does not exist
LINE 1: SELECT COUNT(*) FROM "photo_userreferralcode"

我的model.py

class UserReferralCode(models.Model):
    owner = models.CharField(max_length=300,blank=True,null=True)
    referral_code = models.CharField(max_length=300,blank=True,null=True)
    created_time = models.DateTimeField(auto_now_add=True)
    updated_time = models.DateTimeField(auto_now=True)

我的admin.py

from app.models import UserReferralCode 

admin.site.register(UserReferralCode)

我还在我的主admin.autodiscover() 中添加了urls.py

提到新迁移(因为我打算添加新模型)我已经逐步编写了以下命令

第一

python manage.py schemamigration photo --initial

然后第二次

python manage.py migrate photo

然后是第三次

python manage.py schemamigration photo --auto

然后第四次

python manage.py migrate photo

然后

python manage.py syncdb

在完成所有这些工作人员之后,模型UserReferralCode已添加到django管理站点中,我可以看到它,但点击这个新添加的模型或在此模型上保存任何内容后,我面临以上给定错误,我再次在这里给它。

 DatabaseError at /admin/photo/userreferralcode/
 relation "photo_userreferralcode" does not exist
 LINE 1: SELECT COUNT(*) FROM "photo_userreferralcode" 

提到我的应用名称是照片

现在问题或我在这里失踪的是什么。

1 个答案:

答案 0 :(得分:2)

创建应用程序的第一次迁移时使用

--initial。之后,每次更改模型或添加新模型时都会使用--auto。 (对于另一个django应用程序,您运行--initial并进行第一次迁移,依此类推)

因此,考虑到您之前的问题,您应该应用以下步骤:

  1. PhotoUserCommission添加到您的models.py
  2. python manage.py schemamigration photo --initial
  3. python manage.py migrate photo
  4. (更改并为其创建迁移)
  5. UserReferralCode添加到models.py
  6. python manage.py schemamigration photo --auto
  7. python manage.py migrate photo
  8. 顺便说一下,一旦您使用migrate,您就不必使用syncdb,因为migrate打算更方便地替换syncdb方式。