Python 迁移admin.0001_首字母在其依赖项app.0001_首字母在数据库';默认值';
我正试图在Python 迁移admin.0001_首字母在其依赖项app.0001_首字母在数据库';默认值';,python,django,Python,Django,我正试图在Django中为我的项目定制用户模型 My型号.py: class myCustomeUser(AbstractUser): id = models.AutoField(primary_key=True) username = models.CharField(max_length=20, unique="True", blank=False) password = models.CharField(max_length=20, blank=
Django
中为我的项目定制用户模型
My型号.py:
class myCustomeUser(AbstractUser):
id = models.AutoField(primary_key=True)
username = models.CharField(max_length=20, unique="True", blank=False)
password = models.CharField(max_length=20, blank=False)
is_Employee = models.BooleanField(default=False)
is_Inspector = models.BooleanField(default=False)
is_Industry = models.BooleanField(default=False)
is_Admin = models.BooleanField(default=False)
class Industry(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='industry_releted_user')
name = models.CharField(max_length=200, blank=True)
owner = models.CharField(max_length=200, blank=True)
license = models.IntegerField(null=True, unique=True)
industry_extrafield = models.TextField(blank=True)
class Employee(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='employee_releted_user')
industry = models.OneToOneField(Industry, on_delete=models.CASCADE, related_name='employee_releted_industry')
i_id = models.IntegerField(null=True, blank=False, unique=True)
name = models.CharField(max_length=200, blank=False, null=True)
gmail = models.EmailField(null=True, blank=False, unique=True)
rank = models.CharField(max_length=20, blank=False, null=True)
employee_varified = models.BooleanField(default=False)
class Inspector(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='inspector_releted_user')
inspector_extrafield = models.TextField(blank=True)
class Admin(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='admin_releted_user')
admin_extrafield = models.TextField(blank=True)
AUTH_USER_MODEL = 'app.myCustomeUser'
在设置.py中:
class myCustomeUser(AbstractUser):
id = models.AutoField(primary_key=True)
username = models.CharField(max_length=20, unique="True", blank=False)
password = models.CharField(max_length=20, blank=False)
is_Employee = models.BooleanField(default=False)
is_Inspector = models.BooleanField(default=False)
is_Industry = models.BooleanField(default=False)
is_Admin = models.BooleanField(default=False)
class Industry(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='industry_releted_user')
name = models.CharField(max_length=200, blank=True)
owner = models.CharField(max_length=200, blank=True)
license = models.IntegerField(null=True, unique=True)
industry_extrafield = models.TextField(blank=True)
class Employee(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='employee_releted_user')
industry = models.OneToOneField(Industry, on_delete=models.CASCADE, related_name='employee_releted_industry')
i_id = models.IntegerField(null=True, blank=False, unique=True)
name = models.CharField(max_length=200, blank=False, null=True)
gmail = models.EmailField(null=True, blank=False, unique=True)
rank = models.CharField(max_length=20, blank=False, null=True)
employee_varified = models.BooleanField(default=False)
class Inspector(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='inspector_releted_user')
inspector_extrafield = models.TextField(blank=True)
class Admin(models.Model):
user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='admin_releted_user')
admin_extrafield = models.TextField(blank=True)
AUTH_USER_MODEL = 'app.myCustomeUser'
这里的admin.site.register
也是在admin.py
中完成的。现在,当我尝试migrate
或makemigrations
时,它在终端中显示以下消息:
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "G:\Python\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
utility.execute()
File "G:\Python\lib\site-packages\django\core\management\__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "G:\Python\lib\site-packages\django\core\management\base.py", line 328, in run_from_argv
self.execute(*args, **cmd_options)
File "G:\Python\lib\site-packages\django\core\management\base.py", line 369, in execute
output = self.handle(*args, **options)
File "G:\Python\lib\site-packages\django\core\management\base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "G:\Python\lib\site-packages\django\core\management\commands\makemigrations.py", line 101, in handle
loader.check_consistent_history(connection)
File "G:\Python\lib\site-packages\django\db\migrations\loader.py", line 295, in check_consistent_history
raise InconsistentMigrationHistory(
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency app.0001_initial on database 'default'.
回溯(最近一次呼叫最后一次):
文件“manage.py”,第21行,在
main()
文件“manage.py”,第17行,主
从命令行(sys.argv)执行命令
文件“G:\Python\lib\site packages\django\core\management\\ uuuu init\uuuu.py”,第401行,从命令行执行
utility.execute()
文件“G:\Python\lib\site packages\django\core\management\\uuuuu init\uuuuuu.py”,第395行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“G:\Python\lib\site packages\django\core\management\base.py”,第328行,运行于\u argv
self.execute(*args,**cmd_选项)
文件“G:\Python\lib\site packages\django\core\management\base.py”,第369行,在execute中
输出=self.handle(*args,**选项)
文件“G:\Python\lib\site packages\django\core\management\base.py”,第83行,包装为
res=句柄函数(*args,**kwargs)
文件“G:\Python\lib\site packages\django\core\management\commands\makemigrations.py”,第101行,在handle中
加载程序。检查\u一致\u历史记录(连接)
文件“G:\Python\lib\site packages\django\db\migrations\loader.py”,第295行,在check\u consistent\u历史记录中
引发不一致的迁移历史记录(
django.db.migrations.exceptions.InconsistentMigrationHistory:Migration admin.0001_initial在数据库“default”上的依赖项app.0001_initial之前应用。
这是什么意思?我也不想在这个
myCustomeUser
模型中设置username
和password
的默认值。另外,请建议我,这是制作usermodel
的正确方法吗?在这里,我也尝试在删除完整数据库后进行迁移,但它不起作用。我如何可以解决这个问题吗?您必须删除并重新生成迁移,只是再次迁移并不能解决问题,因为它被记录在案。这是否回答了您的问题?@iklinac我刚刚运行了python manage.py migrate admin zero
,python manage.py migrate auth zero
,python manage.py migrate contenttypes zero
,python manage.py migrate sessions zero
删除我的迁移,然后重新makemigrations
和migrate
,但问题仍然存在。在这里,我也尝试在删除完整数据库后进行migrate
,但它不起作用。我如何解决这个问题?你必须删除并重新进行迁移,只是迁移ting再次无法解决这个问题,因为它被记录在案。这是否回答了您的问题?@iklinac我刚刚运行了python manage.py migrate admin zero
,python manage.py migrate auth zero
,python manage.py migrate sessions zero
来删除我的迁移,然后重新makemigrations
和migrate
,但问题仍然存在。