【问题标题】:Download sqlite database from Heroku从 Heroku 下载 sqlite 数据库
【发布时间】:2014-12-26 23:41:49
【问题描述】:

我有一个工作人员在 Heroku 上每 2 小时运行一次 python 脚本。

问题是每次我从 git 中“拉”更改。

sqlite3 数据库没有任何变化。

但是通过查看日志文件,我确定程序正在运行并且数据库已经更改。

heroku log

那么如何检索 .db 文件呢?

【问题讨论】:

  • 嘿,你能告诉我们你找到了什么解决方案吗?我们在 heroku 上托管了一个 django 网站,在该网站上添加数据会更改 heroku 的数据库,但无法从那里拉出。
  • @AbhishekAgrawal 在我使用 Heroku 之前很久,但下面的答案似乎最终得到了验证。谢谢

标签: python git sqlite heroku


【解决方案1】:

听起来你有点误解。 Heroku 的 git 支持实际上是单向的;您可以使用它来推送要在服务器上运行的新代码,但不能使用它将文件从 Heroku 复制回本地树。

不幸的是,似乎没有一种简单的方法可以将文件从应用程序复制到本地计算机;您可以使用heroku run console 获取bash shell,然后使用scp 输出文件,但是您将其“推”出 Heroku,因此运行只能复制到具有有效 IP 地址的东西。

但是,如果您真的使用 sqlite 作为应用程序的存储空间,那么您将遇到更大的问题。 Heroku 上的应用程序文件系统是短暂的,因为您所做的更改可以随时清除。 Heroku 将删除您应用的本地存储,并随时重新开始。

正确的做法是使用 Heroku 的内置 Postgres 支持并将应用程序的数据存储在那里。它不仅会持续存在,而且您还可以使用 Postgres 命令行工具直接访问它。

【讨论】:

    【解决方案2】:

    现在可以通过以下方式访问 heroku 控制台:

    heroku run bash

    然后我下载了 linux gdrive 应用程序并在本地运行的文件夹中将我的文件上传到谷歌驱动器。 https://olivermarshall.net/how-to-upload-a-file-to-google-drive-from-the-command-line/(跳过第 4 步并使用 ./ 运行,就像这样 ./gdrive upload my_file.txt

    heroku run console 的其他建议对我不起作用(运行 python 烧瓶应用程序)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      相关资源
      最近更新 更多