18

我对 Rails 和 Heroku 都很陌生,但我正在认真考虑使用它作为一个平台来部署我的 Ruby/Rails 应用程序。

我想使用 Heroku 的所有功能,所以我更喜欢 Heroku 管理的“嵌入式”PostgreSQL,而不是 Amazon RDS for MySQL 的插件,但如果不能在 SQL 客户端中访问我的数据,我就不太有信心了。 ..

我知道在一个制作精良的应用程序中,您不需要访问数据库,但是在某些情况下(向配置表添加行,查看未映射到视图中的数据,更新一些列以解决调试问题,性能监控,运行查询报告等)当这可能很好......

你怎么解决这个问题?在由 Heroku 提供支持的现实应用中,您有什么体验?

谢谢!

4

3 回答 3

11

我已经使用它大约一年了。我喜欢它提供的工作流程,但我发现无法访问数据确实很麻烦。您使用数据库的选项是:

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.

于 2010-03-17T07:30:33.550 回答
6

我使用admin_data让我了解正在发生的事情。我已经在 Heroku 以及其他托管服务提供商上成功使用了它。

于 2010-03-16T18:16:22.723 回答
4

首先让我先说heroku 很棒。我在部署我的应用程序并与他们的其他服务(如 websolr)集成方面拥有丰富的经验。

话虽如此,你的问题:

获取您的数据

如果您希望能够访问您的数据,您可以使用点击将远程数据库拉到本地。这对于调试很有用。

性能监控

使用新的文物 RPM。这是 heroku 的一部分,您可以从附加组件菜单中启用它。

即席数据库查询

您可以编写一个控制器,允许您执行任意 sql 并查看结果,但这不是我推荐的。正如建议的那样admin_data是管理数据的好解决方案,但如果您想做更复杂的事情,您将不得不自己编写代码。

于 2010-03-16T20:13:54.827 回答