Django Evolution: Как мне добавить новое поле в определенной позиции? - PullRequest
0 голосов
/ 12 ноября 2010

Эй, есть ли способ сообщить Django Evolution о добавлении нового поля в таблицу базы данных в определенной позиции, похожей на инструкцию AFTER (My) SQL?У меня есть таблица с некоторыми столбцами, и я хочу добавить new_column после column1.Используя SQL напрямую, я бы сделал это:

ALTER TABLE  `db_table` ADD  `new_column` DATETIME NULL DEFAULT NULL AFTER  `column1`

Для Django Evolution это означает:

MUTATIONS = [
    AddField('DbTable', 'new_column', models.DateTimeField, null=True, ...)
]

Однако это добавит new_column к концу Таблица, есть ли что-то, что я могу передать для точек в приведенном выше утверждении, дающих больше контроля над заказом?

Спасибо.

1 Ответ

0 голосов
/ 12 ноября 2010

Джанго не зависит и не заботится о положении столбца в базе данных.Я предполагаю, что Django Evolution работает точно так же.

Так что вы не должны слишком сильно зависеть от внутренних компонентов базы данных, в конце концов, именно поэтому вы используете ORM, верно?1004 * Если вам действительно нужно это сделать, я предлагаю создать подкласс django_evolution.mutations.AddField и перезаписать метод add_column, чтобы включить оператор AFTER в список операторов SQL, возвращаемых этим методом.Там могут быть лучшие места, это будет взломать.

...