【问题标题】:How to connect with postgresql database after deployment to Heroku?部署到 Heroku 后如何连接 postgresql 数据库?
【发布时间】:2019-05-31 09:46:59
【问题描述】:

我是 Django 新手,但我正在使用 Postgresql 将基于 Django 的网站部署到 Heroku。部署成功,网站上线并与数据库建立连接。但是,我的本地数据库中的任何数据都没有迁移到 heroku 数据库,导致它是一个空白数据库。如果我进入管理部分并手动输入一个数据点,它会出现在我的网站上,所以我知道数据库正在正确地提供数据。将数据从本地数据库迁移到数据库的在线 heroku 版本的正确方法是什么?我认为以下代码会迁移数据:

heroku run python manage.py makemigrations
heroku run python manage.py migrate

但显然我错过了一些东西。

【问题讨论】:

  • 在本地创建迁移文件并推送到 Heroku。它有效,而且是更好的做法。顺便说一句:这个问题已经被问到herehere。此评论适用于问题的编辑内容,而不是标题或原始陈述的问题。
  • 感谢您指出这些。那些帖子并没有具体的解决方案,所以我又问了一遍。根据 Robert 下面的建议,我最终使用固定装置来预填充我的数据库。
  • 顺便问一下,你在本地创建迁移文件并推送到 Heroku 是什么意思?我在进行迁移后尝试了“python manage.py migrate”并执行了“git push heroku master”,但没有数据传输到我的数据库。我假设通过在本地创建迁移文件,您打算使用固定装置,并且我所做的与您的说明一致。
  • 对不起,我看错了你的问题。既然你说你在 Heroku 上运行了makemigrations,我认为问题在于自动生成的迁移文件本身(它设置了数据库的结构)。对于移动数据,Robert H 提到的三个选项是最好的。

标签: django postgresql


【解决方案1】:

make migrations 将创建一个包含您的架构但不包含数据的迁移。 migrate 命令将迁移应用到数据库。

为了提供要作为迁移命令的一部分发送的数据,您需要创建data migration 或使用fixture

您的另一个选择是dump your local database 并执行import into Heroku Postgres

总而言之,这取决于您想要复制多少本地数据。如果它只有几行,我会使用数据迁移或固定装置,如果它的 100 或 1000 行数据集的导出/导入是你最好的选择。

【讨论】:

  • 感谢您的回答。我最终使用固定装置来预填充我的数据库。到目前为止,它似乎可以毫无问题地处理我的行数。因为数据被转换为 JSON,而且 JSON 即使有很多数据也可以相当稳定,我希望它不会成为太大的问题。当它发生时,我希望我可以将数据分成块,并将它们作为单独的固定装置加载。这是很多“我希望”,所以我们必须看到!
  • 没问题,很高兴为您提供帮助 - 如果您发现此答案对您有所帮助,或解决了您的问题,请使用向上(或向下箭头)表示有帮助,并使用复选标记接受答案。祝你好运!
猜你喜欢
  • 2014-03-04
  • 2021-09-30
  • 2014-03-30
  • 2013-04-19
  • 2013-10-07
  • 2018-10-10
  • 2017-11-03
  • 2014-09-25
  • 1970-01-01
相关资源
最近更新 更多