Django迁移数据库列顺序

时间:2017-07-23 03:45:37

标签: python django postgresql django-models migration

我使用Django 1.11,PostgreSQL 9.6和Django迁移工具。我找不到指定列顺序的方法。在初始迁移中,更改字段的顺序很好但是migrations.AddField()调用呢?对于初始迁移的外键添加,也可能发生AddField次调用。有没有办法指定订单,或者我只是沉迷于订单,但我不应该?

讨论后更新

PostgreSQL DBMS不支持位置列添加。因此,期望来自迁移工具的此工具用于添加色谱柱实际上毫无意义。

2 个答案:

答案 0 :(得分:2)

AFAIK,没有官方支持的方法来做到这一点,因为字段应该是原子的,它不应该是相关的。然而,它也与我强迫性的一面混淆,并且我喜欢在我需要调试dbshell中的内容时订购我的列。以下是我发现你可以做的事情:

  • 使用python manage.py makemigrations
  • 进行迁移
  • 修改迁移文件,然后重新排序fields
  • 中的migrations.createModel
祝你好运!

答案 1 :(得分:0)

我不是100%知道PostgreSQL语法,但这是创建数据库后在SQL中的样子。我确定PostgreSQL会具有同等的功能:

更改表yourtableyourmodel columntochange columntochange更改列columntoplaceunder之后的INT(11)不为空;

或者,如果您具有GUI(在我的情况下为MySQL工作台),则可以转到表设置,并根据需要简单地拖放列,然后单击“应用”。