我已经使用它大约一年了。我喜欢它提供的工作流程,但我发现无法访问数据确实很麻烦。您使用数据库的选项是:
Taps:理论上,您可以根据需要在本地创建数据库,并使用 Taps 将模式和数据复制到 Heroku。在实践中,大多数时候它都非常棒。但是,我目前正在处理在水龙头翻译我的一些列并损坏我的数据之后的清理工作。
Heroku 控制台:对于所有常见的 ActiveRecord 东西来说都很好,但最接近数据库的是 ActiveRecord::Base.connection.execute "some sql"。当您发现自己对执行类似的更改表命令感到疑惑时,您就会知道自己遇到了麻烦。
它们还提供“捆绑包”作为备份应用程序的方法。这使您可以下载所有代码以及数据库的 sql 转储。困难在于,由于没有直接的数据库访问,因此无法将相同的 sql 转储加载回数据库,因此您可以从数据丢失中恢复,对我来说,这就是让这些转储文件开始的关键。您可以使用捆绑包创建一个新应用程序(heroku bundles:animate),而不是恢复当前应用程序。
I would love to be wrong about any/all of these. This seems like a curious rough spot in the best thought out service that I know of. Database access normally doesn't feel like much to give up when most of what you do is made so easy.
To me database access is like a fire extinguisher. Usually not a big deal, but when it matters, it matters a lot.