[英]django south migration error relation “photo_photo” already exists
我正在使用Django South,正在遵循http://south.readthedocs.org/en/latest/tutorial/part1.html的教程
首先,我想提供一些有關我的項目和應用程序的信息。 我有一個django應用程序,即photo
,我有兩個模型,即Photo
和UserCommission
。
這些是模型
class Photo(models.Model):
name = models.CharField(max_length = 100)
photo = models.ImageField(upload_to = 'photos', blank=False,null=True)
approved = models.BooleanField(default = False)
approved_time = models.DateTimeField(auto_now=True,null=True,blank=True)
uploaded_time = models.DateTimeField()
description = models.CharField(max_length = 500 , blank = False , null = True)
和
class UserCommission(models.Model):
user = models.ForeignKey(User)
created_time = models.DateTimeField('Created Time',auto_now_add=True)
commission = models.IntegerField()
photo_name=models.CharField(max_length=255)
photo = models.ImageField(upload_to='commission_image')
download = models.DateTimeField()
photo_id = models.CharField(max_length=300)
對於我的第一次遷移,我已根據該教程應用了以下內容,
python manage.py schemamigration photo --initial
然后我立即應用了以下命令
python manage.py migrate photo
然后我對我的Photo
模型進行了更改,並應用以下命令進行最終遷移
python manage.py schemamigration photo --auto
和
python manage.py migrate photo
最后,我的第一個遷移成功完成,並且在Photo
模型中添加了已編輯的列!
現在在另一種情況下,我必須更改我的UserCommission
模型,為此,我遵循了第一次遷移時遵循的相同過程。但是在第二次遷移的最后一個命令之后
python manage.py migrate photo
我面臨以下錯誤
為照片運行遷移:-向前遷移到0002_initial。
photo:0001_initial致命錯誤-以下SQL查詢失敗:CREATE TABLE“ photo_photo”(“ id” serial NOT NULL PRIMARY KEY,“ name” varchar(100)NOT NULL,“ photo” varchar(100)NULL,“ approved” boolean NOT NULL,帶時區NULL的“ approved_time”時間戳,帶時區的“ uploaded_time”時間戳,NOT NULL,“描述” varchar(500)NULL,“關鍵字” varchar(500)NULL,“ image_id” varchar(300)NULL,“認證的”布爾值NOT NULL,“ approved_by” varchar(100)NOT NULL,“ user_id”整數NOT NULL,“ total_download”整數NOT NULL,“ watermarked_image” varchar(100)NULL,“ dpi_value”整數NOT NULL)錯誤是:關系“ photo_photo”已經存在遷移中的錯誤:photo:0001_initial DatabaseError:關系“ photo_photo”已經存在
DatabaseError: relation "photo_photo" already exists
告訴你,那真的讓我感到困擾。
聽起來好像已經應用了遷移,但數據庫認為還沒有。 您始終可以migrate --fake
來僅更新數據庫中的表,而無需嘗試應用遷移。
就您而言,您似乎(至少)需要python manage.py migrate photo --fake 0002
。 對於多個遷移,您可能必須執行此操作,具體取決於您已有多少遷移和完成了什么遷移。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.