不删库解决:Django中指定用户所用模型类AUTH_USER_MODEL后执行migrate时报错问题

摘要

  • 首先,我服那些说删库的人,解决问题非要删库?
  • 其次,我更服那些复制粘贴说删库的人,天天删库删库你的良心不会痛吗?
  • 再次,bai度爬虫的算法还是那么不尽人意,真的很难把握用户的意图。

问题描述:

  遇到这个问题是因为我在改变用户所用模型类基类的之前生成了迁移文件和迁移表。
所以在配置AUTH_USER_MODEL = "users.UserProfile"后出现了迁移文件可以生成但是迁移表无法生成的错误信息。
  问题详情:

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

问题解决:

  仔细看这个错误就会发现一个关键点:admin.0001_,这像什么?在发现这个关键点之后,我还想到确实成功的生成迁移文件了,那么就极有可能是admin默认生成的迁移表出现了问题,所以**我尝试把admin对应的迁移文件删除(不包括__init__.py文件)**后,在生产迁移表就不会报错了。
  考虑到可能有朋友找不到该文件的目录,我将我的环境目录粘贴进来”

E:\Anaconda\envs\mxonline\Lib\site-packages\django\contrib\admin\migrations

补充一下mysql严格模式警告解决方法:

问题详情:WARNINGS: ?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
解决方法:添加一个kv:'OPTIONS’

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mxonline',
        'USER':'root',
        'PASSWORD':'123456',
        'HOST': 'localhost',
        'PORT': 3306,
        'OPTIONS': {
            'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"',
            'charset': 'utf8mb4'
        }

    }
}

如果想深入了解一下mysql的严格模式的话。参考:mysql严格模式

总结

  • 别动不动就删库好吗?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值