背景:
在公司写的django 项目跑的好好的,但是数据库所在的服务器电脑被搞挂了(也不知道被人安装什么了,服务起不起来了,只能重新安装数据库,django项目关联新的数据库),
已有的项目要尽快恢复(原先的数据没办法找回了),只能重新关联一个。这里数据库安装不再赘述(一定一定要装linux系统的数据库, 虽然windows数据库安装更加简单,但是真~滴~卡~)
1. 在新数据库服务器上创建一个数据库
注意编码,这里的数据库编码一定要和django配置中的数据库的编码一致
如果编码不一致,则会出现乱码,在往数据库中插入数据时,会出现字段名乱码的情况,导致插入失败的情况
会报错pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8C\\xB8' for column 'headline' at row 1")
配置django的数据库连接配置(这是我的数据库配置)
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_test', 'USER':'root', 'PASSWORD':"", 'HOST':"10.89.44.179", 'PORT':3306, 'CHARSET':'utf8' } }
2. 将所有的migrations文件全部干掉, 并重新产生新的数据库同步文件
这个是我的某个app下的migrations目录:
2.1 首先手动删除所有自己创建的 apps下的\migrations目录,
2.2 然后对所有自己创建的app, 重新执行, python manage.py makemigrations app名称, 重新产生各个app的migrations目录,并产生第一次的数据库同步文件
python manage.py makemigrations app01 # 会产生app01下的数据库同步文件
如果django安装了某些插件(例如django_apscheduler等插件),这里会报错,将引用这些插件的地方先注释掉,再执行上边的步骤,否则会报错
3. 将所有的数据库临时文件,同步到数据库
python manage.py migrate
4. 同步 生成 插件对应的数据库表
放开第二步中注释掉的插件,并执行对应的安装命令。大功告成
python manage.py makemigrations app名称标签:插件,python,app,migrations,django,更换,数据库 From: https://www.cnblogs.com/lhg37927/p/17485085.html