【发布时间】:2016-02-14 09:32:43
【问题描述】:
Python 3、Django 1.8.5、Postgres
我有一个模型Sites 一直工作正常。我最近尝试添加一个字段,airport_code,并迁移数据。
class Site(BaseModel):
objects = SiteManager()
name = models.CharField(max_length=200, unique=True)
domain = models.CharField(max_length=200, unique=True)
weather = models.CharField(max_length=10)
nearby_sites = models.ManyToManyField('self', symmetrical=False, blank=True)
users = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True)
facebook = models.URLField(max_length=200)
twitter = models.URLField(max_length=200)
header_override = models.TextField(blank=True)
email_header_override = models.TextField(blank=True)
timely_site_tag_id = models.IntegerField()
timely_featured_tag_id = models.IntegerField()
timely_domain = models.CharField(max_length=255)
sitemap_public_id = models.CharField(max_length=255)
state = models.CharField(max_length=24)
airport_code = JSONField()
但是,当我运行makemigrations 时出现错误:
django.db.utils.ProgrammingError: column sites_site.airport_code does not exist
LINE 1: ..._site"."sitemap_public_id", "sites_site"."state", "sites_sit...
当然,这没有意义,因为当我尝试在迁移中创建该列时,该列显然不存在。
我在 Stack Overflow 上看到了很多关于这个 bug 的问题没有得到解答,或者有解决方案来手动创建迁移文件,或者销毁并重建数据库。这不是一个好的解决方案。
【问题讨论】:
标签: django postgresql python-3.x django-models