迁移 Django 开发数据库 (.sql3) 到 Heroku

28 浏览
0 Comments

迁移 Django 开发数据库 (.sql3) 到 Heroku

如何将Django的.sql3开发数据库迁移到Heroku?

根据这里这里的建议,我尝试了以下命令: heroku pg:psql --app sblic < database.sql3,但是我的Django管理界面没有显示任何新的上传文件(即使执行了syncdb/migrate/或collectstatic操作)。

0
0 Comments

问题原因:在将Django开发数据库(.sql3)迁移到Heroku时,出现了fixture错误。

解决方法:按照以下步骤执行迁移操作:

1. 将sql3数据库转换为json文件,创建数据库的转储。

2. 安装PostgreSql并将其bin目录添加到Path环境变量中,创建PostgreSql用户和数据库。

3. 在settings.py文件中更新数据库设置,设定新创建的PostgreSql数据库的引用。

4. 运行"python manage.py syncdb"命令初始化新的PostgreSql数据库。

5. (可选)如果需要,清空数据库的内容。

6. 加载第一步中创建的转储。

7. 现在拥有一个正常工作的本地PostgreSql数据库。首先创建PostgreSql转储。

8. 将PostgreSql转储上传到可通过URL访问的地方。

9. 使用pgbackups restore命令,引用转储的URL进行恢复。

10. Heroku应用程序现在引用本地数据库的内容。

注意:如果在转储时遇到fixture错误,可以尝试添加参数"--natural-foreign --natural-primary"来解决。

0
0 Comments

问题出现的原因:在Heroku命令行工具中使用psql二进制文件时,需要在本地开发机器上安装PostgreSQL。官方文档中说明了这一点。

解决方法:可以继续在Heroku上使用SQLite数据库,但这并不推荐,因为如果重新部署到另一个dyno,它将被本地副本重写。推荐的方法是将数据迁移到psql,具体方法可以参考官方文档https://devcenter.heroku.com/articles/sqlite3。但由于数据库是.sql3格式,所以首先需要转换为PostgreSQL。

文章内容如下:

Heroku命令行工具使用psql二进制文件。为了在本地开发机器上使用psql,需要先安装PostgreSQL。根据官方文档的说明,必须在系统上安装PostgreSQL才能使用heroku pg:psql命令。

虽然你可以继续使用SQLite数据库在Heroku上进行开发,但这并不是推荐的做法。因为如果你重新部署到另一个dyno,它将会用本地副本重写SQLite数据库。所以推荐的做法是将数据迁移到PostgreSQL,具体方法可以参考官方文档https://devcenter.heroku.com/articles/sqlite3

然而,由于你的数据库是.sql3格式,所以首先需要将它转换为PostgreSQL格式。

0