Ответ 1
Да, это подход, который вы должны предпринять. Для этого вы должны сделать schemamigration → datamigration → schemamigration. к сожалению, если в SQL нет способа сделать это, то и юг тоже не сможет этого сделать.
Использование South/Django, я столкнулся с проблемой, когда я пытаюсь добавить столбец UNIQUE
и NOT NULL
для модели с существующими строками в базе данных. Юг предлагает мне указать значение по умолчанию для столбца, так как оно NOT NULL
. Но поскольку у него также есть ограничение UNIQUE
, я не могу добавить значение по умолчанию в поле models.py, а также не могу указать одноразовое значение, потому что оно будет одинаковым во всех строках.
Единственный способ, с помощью которого я могу обойти это, - создать сначала нулевой столбец, применить миграцию, запустить script, чтобы заполнить существующие строки уникальными значениями в этом столбце, а затем добавить еще одну миграцию для добавления ограничение UNIQUE
для этого столбца.
Но есть ли лучший способ сделать то же самое?
Да, это подход, который вы должны предпринять. Для этого вы должны сделать schemamigration → datamigration → schemamigration. к сожалению, если в SQL нет способа сделать это, то и юг тоже не сможет этого сделать.