一尘不染

Django:将项目从sqlite迁移到PostgreSQL的最佳实践是什么

django

我需要将一个复杂的项目从sqlite迁移到PostgreSQL。很多人似乎对外键,数据截断等存在问题。

  • 有全自动的工具吗?
  • 迁移之前是否需要检查一些数据或架构?

阅读 437

收藏
2020-03-31

共1个答案

一尘不染

我的经验,从SQL转储和还原无法正常工作。

你应该遵循以下顺序:

1.将数据库内容转储到json

$ ./manage.py dumpdata > dump.json

2.在settings.py中切换后端

DATABASES = {
    # COMMENT OUT:
    # 'default': dj_database_url.config(default='sqlite:////full/path/to/your/database/file.sqlite'),
    # ADD THIS INSTEAD:
    'default': dj_database_url.config(default='postgres://localhost:5432/postgres_db_name'),
}
  1. Syncdb并将新数据库迁移到相同的表结构
$ ./manage.py syncdb
$ ./manage.py migrate

4.将json加载到新数据库。

$ ./manage.py loaddata dump.json

5.恭喜!现在,新数据在你的postgres数据库中。

2020-03-31