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

时间:2015-02-21 17:18:28

标签: django sqlite postgresql amazon-s3 migrate

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

django project with important database highlighted that must be migrated

herehere我尝试了:heroku pg:psql --app sblic < database.sql3但我的Django管理员没有显示新的上传内容(即使在syncdb / migrate /或collectstatic之后

2 个答案:

答案 0 :(得分:2)

也许有一种方法可以直接将sql3文件上传到Heroku,但我选择了最明确的路径(将本地sql3 db转换为postgre db和upload a dump of postgre db to Heroku via pgbackups tool):

  1. Create a dump of your sql3 database as a json file
  2. 安装PostgreSql并在bin环境变量create a postgre user and database中设置Path目录(或者只计划使用安装postgresql时创建的初始超级用户帐户)
  3. 使用reference to your newly created postgre database更新settings.py(注意,'HOST'可能需要设置为'localhost''user'是您的postgre用户登录信息)
  4. 运行python manage.py syncdb以启动新的postgre db
  5. 可选:如有必要,truncate your postgre db of contenttypes
  6. load your dump from step 1(如果您遇到灯具问题,see here
  7. 现在你有一个工作的postgre本地数据库。 To migrate, first create a postgre dump
  8. 将您的postgre转储发布到可通过URL访问的位置(例如上一个链接中建议的drop box或amazon s3)。
  9. 执行pgbackups restore command, referencing your dump url
  10. 您的heroku应用程序现在应该引用本地数据库的内容。

答案 1 :(得分:1)

Heroku命令行工具使用psql二进制文件。您必须在本地开发计算机上安装PostgreSQL才能使用psql。来自(文档)[https://devcenter.heroku.com/articles/heroku-postgresql#pg-psql]

  

您必须在系统上安装PostgreSQL才能使用heroku pg:psql。

事实上,您可以继续使用Herite的SQLite数据库,但不建议这样做,因为如果您将其重新部署到另一个dyno,它将被本地副本重写。建议将数据迁移到psql,如https://devcenter.heroku.com/articles/sqlite3

中所述