Django迁移数据库列顺序

tjvv9vkg  于 2022-11-18  发布在  Go
关注(0)|答案(2)|浏览(175)

我使用Django1.11,PostgreSQL 9.6和Django迁移工具。我无法找到指定列顺序的方法。在最初的迁移中,更改字段的顺序是可以的,但是migrations.AddField()调用怎么办?AddField调用也可能发生在初始迁移的外键添加中。有没有什么方法可以指定顺序,或者我只是痴迷于顺序,但我不应该?

讨论后更新

PostgreSQL DBMS不支持位置列添加。因此,期望迁移工具为列添加提供此功能实际上是毫无意义的。

w6lpcovy

w6lpcovy1#

AFAIK,没有官方支持的方法来实现这一点,因为字段应该是原子的,它不应该是相关的。然而,它也扰乱了我的强迫症方面,我喜欢我的列被排序,当我需要调试的东西在dbshell,例如。下面是我发现你可以做的:

  • 使用python manage.py makemigrations进行迁移
  • 编辑迁移文件并将fields重新排序为migrations.createModel
dgtucam1

dgtucam12#

我不是100%确定PostgreSQL的语法,但这是在你创建数据库后在SQL中的样子。我确信PostgreSQL会有一个等价的语法:
修改表格yourtableyourmodel修改列columntochangecolumntochange INT(11)在columntoplaceunder之后不为空;
或者,如果您有一个GUI(在我的例子中是mysql工作台),您可以转到表设置,并根据需要简单地拖放列,然后单击APPLY。

相关问题