Миграции применяются в соответствии с пользователем в models.py вместо применения в соответствии с миграциями в базе данных. - PullRequest
0 голосов
/ 23 октября 2018

Я написал собственную команду миграции django, как показано ниже

User = get_user_model()

def populate_asset_assignee(apps, schema_editor):
    for user in User.objects.all():
        user.save()
        # Some more code

Модель пользователя выглядит следующим образом

class User(AbstractUser):
    username = None
    email = models.EmailField(max_length=50, unique=True)
    cohort = models.IntegerField(blank=True, null=True)
    slack_handle = models.CharField(max_length=50,
                                blank=True, null=True)
    picture = models.CharField(max_length=255, blank=True, null=True)
    phone_number = models.CharField(max_length=50, blank=True, null=True)
    last_modified = models.DateTimeField(auto_now=True, editable=False)
    password = models.CharField(max_length=128, blank=True, null=True)
    location = models.ForeignKey('SomeCentre',
                            blank=False,
                            null=True,
                            on_delete=models.PROTECT)
    # Some more fields

Я недавно добавил поле местоположения и у меня есть миграции для негокоторый применяется после применения этой пользовательской миграции.Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я пытаюсь выполнить миграцию на test db или новой базе данных, я получаю ошибку django.db.utils.ProgrammingError: column core_user.location_id does not exist, которая возникает внутри метода populate_asset_assignee, когда я пытаюсь выполнитьсделать user in User.objects.all() Любые идеи, почему location_id проверяется, пока я еще не применил миграции для поля местоположения.

...