我需要将一个复杂的项目从sqlite迁移到PostgreSQL。很多人似乎对外键,数据截断等存在问题。
我的经验,从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'), }
$ ./manage.py syncdb $ ./manage.py migrate
4.将json加载到新数据库。
$ ./manage.py loaddata dump.json
5.恭喜!现在,新数据在你的postgres数据库中。