我的朋友在OS:windows工作了几天,他使用数据库:sqlite3完成了django应用程序的一部分,他给了我他的工作的备份来完成我的部分,在备份上我找到了一个名为databaseproject.db的数据库,我在这里的问题是使用Linux作为操作系统和postgresql,如何将此数据库databaseproject.db(它是一个sqlite3数据库(迁移到postgresql。
Ps:当我尝试在目录上执行以下命令时(在我的linux上的虚拟环境中复制项目后(:
python manage.py dumpdata --natural-foreign
--exclude=auth.permission --exclude=contenttypes
--indent=4 > data.json
---->命令go没有错误,在这里我发现data.json包含一个空列表。。
所以我想知道,如何正确地从sqlite3迁移到postgresql。?
提前谢谢。
通过任意SQLite Viewer
打开数据库,然后可以确定是否有数据。如果你有数据,然后通过以下命令转储它们:
python manage.py dumpdata --natural-foreign
--exclude=auth.permission --exclude=contenttypes
--indent=4 > data.json
接下来用PostgreSQL
配置更新数据库设置,然后通过以下命令将数据加载到PostgreSQL
数据库中:
python manage.py loaddata data.json
最简单的方法是在此处使用dumpdata
,然后使用loaddata
。
如果您看到一个空的转储文件,则需要进行一些调查。
首先,您可以使用类似Sqlite Browser的东西来确保数据存在于共享数据库中,确保应用程序模型包含的数据不是django内置的模型。
然后,您需要确保应用程序已添加到setttings.py
中的INSTALLED_APPS
中。
并且该应用程序包含一个名为models.py
的文件,该文件包含应用程序模型。