【问题标题】:Migrate new model fields迁移新的模型字段
【发布时间】:2015-08-03 05:19:27
【问题描述】:

当我使用manage.py makemigrations <app> 时,只有具有关系的列才会迁移到 pg 数据库。

如何指导 django 迁移新的基本非关系列,例如:

title = models.CharField(max_length=20, null=True)

我正在使用 django 1.8.2。在 Ubuntu 上

【问题讨论】:

  • 你已经做了哪些尝试?你应该提供一些你已经做过的想法和尝试,或者你读过的例子......
  • 我已经提到了我尝试过的内容 - 如果我添加关系字段(即field = models.ForeignKey(...))然后manage.py makemigrations <app> 更新我的 postgres 数据库中的模型表,但对于非关系字段我不获取更新/迁移。

标签: django postgresql django-models database-migration


【解决方案1】:

当您运行 manage.py makemigrations <app> 时,根本不会迁移任何字段,因为该命令只会在您的 <app>/migrations/ 目录中创建一个新的迁移。只有当您运行 manage.py migrate 时,更改才会写入数据库。

如果您没有获得预期的结果,请查看最新的迁移并确定它会影响哪些字段。所有字段都应作为迁移的目标,而不仅仅是关系字段。更改 max_lengthblankrequired 等属性应该会触发迁移。如果他们不这样做,可能是因为您的更改不需要任何数据库架构修改。

如果还有问题,请发帖:

  1. 模型更改之前的模型
  2. 模型更改后的模型
  3. makemigrations生成的迁移

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 2014-08-10
    • 2015-02-03
    • 1970-01-01
    • 2016-01-03
    • 2021-12-09
    • 2012-11-29
    • 1970-01-01
    相关资源
    最近更新 更多