簡體   English   中英

Django South遷移錯誤關系“ photo_photo”已經存在

[英]django south migration error relation “photo_photo” already exists

我正在使用Django South,正在遵循http://south.readthedocs.org/en/latest/tutorial/part1.html的教程

首先,我想提供一些有關我的項目和應用程序的信息。 我有一個django應用程序,即photo ,我有兩個模型,即PhotoUserCommission

這些是模型

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM