django 南迁移错误关系 "photo_photo" 已经存在
django south migration error relation "photo_photo" already exists
我正在使用 Django South.I 正在学习 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
模型进行更改,为此我遵循了与我的第一个 migration.but 相同的过程,这是在第二个命令的最后一个命令之后
的迁移
python manage.py migrate photo
我遇到了以下错误
运行 照片迁移:
- 迁移到 0002_initial.
photo:0001_initial
FATAL ERROR - The following SQL query failed: CREATE TABLE "photo_photo" ("id" serial NOT NULL PRIMARY KEY, "name" varchar(100) NOT NULL, "photo" varchar(100) NULL, "approved" boolean NOT NULL, "approved_time" timestamp with time zone NULL, "uploaded_time" timestamp with time zone NOT NULL, "description" varchar(500) NULL, "keyword" varchar(500) NULL, "image_id" varchar(300) NULL, "Certified" boolean NOT NULL, "approved_by" varchar(100) NOT NULL, "user_id" integer NOT NULL, "total_download" integer NOT NULL, "watermarked_image" varchar(100) NULL, "dpi_value" integer NOT NULL)
The error was: relation "photo_photo" already exists
Error in migration: photo:0001_initial
DatabaseError: relation "photo_photo" already exists
DatabaseError: relation "photo_photo" already exists
告诉你吧,这真的很困扰我。
听起来好像已经应用了迁移,但数据库认为还没有。您始终可以 migrate --fake
只更新数据库中的 table 而无需尝试应用迁移。
在您的情况下,您似乎需要(至少)python manage.py migrate photo --fake 0002
。您可能需要为不止一次迁移执行此操作,具体取决于您拥有的数量和您完成的工作。
我正在使用 Django South.I 正在学习 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
模型进行更改,为此我遵循了与我的第一个 migration.but 相同的过程,这是在第二个命令的最后一个命令之后
python manage.py migrate photo
我遇到了以下错误
运行 照片迁移: - 迁移到 0002_initial.
photo:0001_initial FATAL ERROR - The following SQL query failed: CREATE TABLE "photo_photo" ("id" serial NOT NULL PRIMARY KEY, "name" varchar(100) NOT NULL, "photo" varchar(100) NULL, "approved" boolean NOT NULL, "approved_time" timestamp with time zone NULL, "uploaded_time" timestamp with time zone NOT NULL, "description" varchar(500) NULL, "keyword" varchar(500) NULL, "image_id" varchar(300) NULL, "Certified" boolean NOT NULL, "approved_by" varchar(100) NOT NULL, "user_id" integer NOT NULL, "total_download" integer NOT NULL, "watermarked_image" varchar(100) NULL, "dpi_value" integer NOT NULL) The error was: relation "photo_photo" already exists Error in migration: photo:0001_initial DatabaseError: relation "photo_photo" already exists
DatabaseError: relation "photo_photo" already exists
告诉你吧,这真的很困扰我。
听起来好像已经应用了迁移,但数据库认为还没有。您始终可以 migrate --fake
只更新数据库中的 table 而无需尝试应用迁移。
在您的情况下,您似乎需要(至少)python manage.py migrate photo --fake 0002
。您可能需要为不止一次迁移执行此操作,具体取决于您拥有的数量和您完成的工作。