【问题标题】:Migrate Django development database (.sql3) to Heroku将 Django 开发数据库 (.sql3) 迁移到 Heroku
【发布时间】:2015-04-23 07:05:52
【问题描述】:

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

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

【问题讨论】:

  • 将数据库和代码移动到 Heroku 的最简单方法就是通过 git push。
  • 您的问题显示了一个 SQLite3 数据库。这与显示如何推送 Postgres 数据库的示例有什么关系?我认为您需要重新陈述您的问题。
  • @Brandon 在 Heroku 中,默认数据库是 Postgres,在本地环境中使用 django 默认是 SQLite3。

标签: django sqlite postgresql amazon-s3 migrate


【解决方案1】:

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

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

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

所述

【讨论】:

  • 很好,但我有一个 .sql3 数据库,所以我需要先转换为 postgres...
【解决方案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 并在 Path 环境变量 create a postgre user and database 中安装 bin 目录(或者只是计划使用您在安装 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 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 应用现在应该引用本地数据库的内容。

【讨论】:

  • 这总是给出夹具错误。即使在倾倒时添加了--natural-foreign --natural-primary 之类的参数。 @DanielRoseman 先生,您知道解决方法吗?请帮忙。
猜你喜欢
  • 2015-09-12
  • 2023-03-05
  • 2015-09-10
  • 2015-09-11
  • 1970-01-01
  • 2014-10-16
  • 2012-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多