django.db.migrations.exceptions.InconsistentMigrationHistory проблема после создания моей собственной пользовательской модели - PullRequest
0 голосов
/ 26 июня 2018

Я создал свою собственную модель пользовательского профиля в django, и когда я попытался запустить команду миграций и переноса, у меня появляется ошибка
а

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration authtoken.0001_initial is applied before its dependency profiles_api.0001_initial on database 'default'

вот мои модели.py

from django.db import models
from django.contrib.auth.models import AbstractBaseUser
from django.contrib.auth.models import PermissionsMixin
from django.contrib.auth.models import BaseUserManager
# Create your models here.
class UserProfileManager(BaseUserManager):
    def create_user(self,email,name,password=None):
        if not email:
            raise ValueError("email is required")
        email=self.normalize_email(email)
        user=self.model(email=email,name=name)

        user.set_password(password)
        user.save(using=self._db)
        return user
    def create_superuser(self,email,name,password):
        """creates new super user with details """

        user=self.create_user(email,name,password)
        user.is_superuser=True
        user.is_staff=True
        user.save(using=self._db)
        return user

class UserProfiles(AbstractBaseUser,PermissionsMixin):
    email=models.EmailField(max_length=255,unique=True)
    name=models.CharField(max_length=255)
    is_active=models.BooleanField(default=True)
    is_staff=models.BooleanField(default=False)
    objects=UserProfileManager()

    USERNAME_FIELD='email'
    REQUIRED_FIELD=['name']
    def get_fullname(self):
        return self.name
    def get_shortname(self):
        return self.name
    def __str__ (self):
        return self.email

в настройках я добавил AUTH_USER_MODEL='profiles_api.UserProfiles'

и я попытался удалить свою исходную базу данных, такую ​​как файлы 000init.py, и проверить, может ли это работать

приветствуется любая помощь заранее спасибо

1 Ответ

0 голосов
/ 26 июня 2018

При замене модели django User, когда вы уже выполнили миграцию в БД, вы должны рассмотреть вопрос о начале заново, удалив базу данных (или, по крайней мере, пользовательскую таблицу, если другая таблица вообще не включает пользовательскую таблицу, и это как правило, это не так), а также миграции папки

settings.py файл:

INSTALLED_APPS = [
    ...
    'profiles_api',
    ...
]

AUTH_USER_MODEL='profiles_api.UserProfiles'

в терминале:

иногда mikemigrations не обнаруживает изменений и возвращает

makemigrations возвращает "Изменений не обнаружено.

Так что полезно указать app имя

> python manage.py makemigrations profiles_api
> python manage.py makemigrations
> python manage.py migrate

Надеюсь, это поможет.

...