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

Migrate Django development database (.sql3) to Heroku

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

根据 here, and here 我试过:heroku pg:psql --app sblic < database.sql3 但我的 Django 管理员显示没有新上传(即使在 syncdb/migrate/ 或 collectstatic

之后

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

You must have PostgreSQL installed on your system to use heroku pg:psql.

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

中的说明将数据迁移到 psql

也许有一种方法可以直接将 sql3 文件上传到 Heroku,但我选择了最明确的路径(将本地 sql3 数据库转换为 postgre 数据库并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 并在 Path 环境变量中使用其 bin 目录,create a postgre user and database(或者只是计划使用您创建的初始超级用户帐户安装 postgresql)
  3. reference to your newly created postgre database 更新您的 settings.py(注意,'HOST' 可能需要设置为 'localhost''user' 是您的 postgre 用户登录名)
  4. 运行 python manage.py syncdb 启动你的新 postgre 数据库
  5. 可选:如有必要,truncate your postgre db 的内容类型
  6. load your dump from step 1 (if you have fixture issues, see here)
  7. 现在你有一个工作的 postgre 本地数据库。 To migrate, first create a postgre dump
  8. Post 您的 postgre 转储可通过 URL 访问的某个地方(例如之前 link 中建议的投递箱或 amazon s3)。
  9. 执行pgbackups restore command, referencing your dump url
  10. 您的 heroku 应用程序现在应该引用您本地数据库的内容。