商务合作加Q:411239339

重新出发django 4.0+PyCharm的旅行笔记(二)--migrate等各种报错

浏览:720次阅读
没有评论

共计 1309 个字符,预计需要花费 4 分钟才能阅读完成。

文章目录[隐藏]

问题一

如下:

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration portal.0001_initial is applied before its dependency auth.0012_alter_user_first_name_max_length on database 'default'.

这是表示有一个叫 reversion 的子应用使用了原来的废弃的 auth 模型,但是目前数据库已经设置了默认的子应用为 portal 的模型了,所以产生了冲突。那么这种冲突,我们需要清除原来的迁移文件和数据库中的所有信息就可以解决了。

解决步骤:

  1. 备份数据库,删除关于用户原来的数据表信息和表结构[如果刚开始开发,则直接清除库中所有数据表即可。]
  2. 删除子应用 users 中 migrations 目录下除了init.py 以外的所有迁移文件
  3. 删除在 django.contrib.admin 和 django.contrib.auth 模块里面的 migrations 迁移文件,除了init.py
  4. 删除在 xadmin 和 reversion 模块中的 migrations 的迁移文件,除了init.py。
  5. 执行数据迁移,把备份数据,除了用户以外的全部恢复执行即可。
  6. 使用 manage.py createsuperuser 创建管理员即可

问题二

报错忘截图了,总之就是 django 损坏了,重装一下就行:

pip install --upgrade django==4.0.5
# 或者如下
pip uninstall django
pip install django==4.0.5

问题三

数据库损坏,重装了下升级到了 mysql 8.0, 但是默认密码不知道。

修改 /etc/mysql/mysql.conf.d/mysqld.cnf 文件,在 [mysqld] 下面增加一行:

skip-grant-tables
# 重启下 mysql, 然后登录
sudo systemctl restart mysql.service
# 这里不需要再输入密码了
mysql -uroot
# 创建⽤户的操作已经不⽀持 grant 的同时创建⽤户的⽅式,需先创建⽤户再进⾏授权
mysql>grantallon*.*to'admin'@'%' identified by 'admin123';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use 
near 'identified by'admin123'' at line 1
mysql> create user  'admin'@'%' identified by 'admin123';
Query OK, 0 rows affected (0.06 sec)
mysql> grant all on *.* to 'admin'@'%' ;
Query OK,0rows affected (0.04 sec)
mysql> flush privileges;
Query OK,0rows affected (0.00 sec
正文完
扫码赞助
post-qrcode
 0
果子
版权声明:本站原创文章,由 果子 于2022-06-16发表,共计1309字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。