Python 3、Django 1.8.5、Postgres

我有一辆Sites型车一直运转良好.我最近try 添加一个字段、airport_代码,并迁移数据.

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...

当然,这没有意义,因为当我试图在迁移中创建该列时,该列显然不存在.

我在堆栈溢出上看到了很多关于这个bug的问题,但没有得到解答,或者有一个手动创建迁移文件的解决方案,或者销毁并重建数据库.这不是一个好的解决方案.

推荐答案

通过在"设置"中的已安装应用中注释掉django调试工具栏,我解决了这个错误.皮耶.我不确定为什么我不能在makemigrations之后运行工具栏.

我花了12个小时想弄明白,希望这能帮助到别人.

Python-3.x相关问答推荐

Django 5.0.2和django_rest_framework

类型注释:pathlib. Path vs importlib. resources. abc. Traversable

如何创建多个日志(log)文件

Python避免捕获特定异常

从另一个云函数调用带有仅允许内部流量标志的云函数时出现问题

不同的焦点顺序和堆叠顺序 tkinter

通过在不重新索引的情况下采用最高概率的百分比,有效地转换 0/1 列表中的概率列表

如何通过 python 使用 auth no priv 获取 SNMPv3?

如果集合大于 len(x),则 pandas 在重复的行中拆分集合列

来自嵌套字典的完整地址

如何在 Telethon 中向机器人发送发送表情符号

多进程:两个进程,一起杀死

列出相同索引的Pandas

当我判断另一个 checkButton 时,如何判断两个 python tkinter checkButtons?

python中两个连续的yield语句如何工作?

ImportError:没有名为资源的模块

Python 3.5:async with导致 SyntaxError.为什么?

使用 asyncio 的多个循环

Python pathlib 获取父级相对路径

如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签