django项目更换数据库

背景:

在公司写的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名称
posted @ 2023-06-16 11:09  往昔遗忘  阅读(174)  评论(0编辑  收藏  举报