Django - 将数据库从sqlite迁移到mysql

时间:2017-08-09 09:01:58

标签: mysql django

我正在尝试将我的sqlite数据库迁移到mysql。我使用了dumdata / loaddata命令:

python manage.py dumpdata > datadump.json

接下来将我的settings.py更改为

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'testowa',
        'USER': 'testowy',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

并运行python manage.py loaddata datadump.json

我收到错误:

django.db.utils.ProgrammingError: (1146, "Table 'testowa.constance_config' doesn't exist")

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Django需要

1)使用migrate命令到新数据库(如果使用authrouter,请使用以下命令指定数据库:

  

python manange.py migrate --database = yourdatabasename

2)具有逻辑顺序的dumpdata(例如,如果在table1中你有一个table2的foreing键,table2必须在table1之前导入)

3)要创建逻辑顺序,只需使用

转储单个模型
  

./ manage.py dumpdata myapp1.fist_model myapp1.second_model> ordered_file.json

4)之后加载数据

相关问题