Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django Migration Database Column Order

I use Django 1.11, PostgreSQL 9.6 and Django migration tool. I couldn't have found a way to specify the column orders. In the initial migration, changing the ordering of the fields is fine but what about migrations.AddField() calls? AddField calls can also happen for the foreign key additions for the initial migration. Is there any way to specify the ordering or am I just obsessed with the order but I shouldn't be?

Update after the discussion

PostgreSQL DBMS doesn't support positional column addition. So it is practically meaningless to expect this facility from the migration tool for column addition.

like image 983
cmertayak Avatar asked Jul 23 '17 03:07

cmertayak


1 Answers

AFAIK, there's no officially supported way to do this, because fields are supposed to be atomic and it shouldn't be relevant. However, it messes with my obsessive-compulsive side as well, and I like my columns to be ordered for when I need to debug things in dbshell, for example. Here's what I've found you can do:

  • Make a migration with python manage.py makemigrations
  • Edit the migration file and reorder the fields in migrations.createModel

Good luck!

like image 164
FlipperPA Avatar answered Oct 13 '22 14:10

FlipperPA