2015-05-12 1 views
4

Я изменил файл models.py и при запуске migrate Я получаю эту ошибку. Свойство - OneToOneField(). Я попытался добавить null=True, но это, похоже, не исправить. Странно, что даже когда я прокомментировал свойство и запустил makemigrations, а затем migrate, я до сих пор получаю ту же самую ошибку. Есть ли способ исправить это? Моя модель выглядит следующим образом:Недопустимое ограничение NULL при запуске `migrate`

class Estimator(Employee): 
    avg_estimate = models.IntegerField() 


class Job(models.Model): 
    created = models.DateTimeField(auto_now_add=True) 
    estimator = models.OneToOneField(Estimator, null=True) 
    address = models.CharField(max_length=100) 
    completed = models.BooleanField(default=False) 
+2

Пожалуйста, добавьте полное сообщение об ошибке на свой вопрос. –

+0

Думаю, вам нужно удалить столбец и снова добавить его, добавив условие Null – Zealous

ответ

5

Я предполагаю, что вы создали миграцию без нуля = True, что не будет мигрировать, то вы создали вторую миграцию с нулевым = True.

Запуск «migrate» приведет к обеим миграциям в порядке, поэтому первый из них снова сработает.

Предполагая, что это так, то 1: удалите два последних файла в папке миграции. (Сначала откройте их, чтобы подтвердить, что они создают миграции, как я описал, прежде чем удалять их). 2: запустить makemigrations снова, с нулем = True в ваших models.py

Это должно создать эквивалент второго файла миграции без промежуточной промежуточной миграции.

+0

Ой хорошо, спасибо, что это сработало! :) – bencunningham

+0

С той же проблемой я недавно –