Heroku应用程序的数据库管理

zet*_*run 18 ruby database deployment ruby-on-rails heroku

我对Rails和Heroku都很陌生,但我正在认真地将它用作部署我的Ruby/Rails应用程序的平台.

我想使用Heroku的所有功能,所以我更喜欢由Heroku管理的"嵌入式"PostgreSQL而不是Amazon RDS for MySQL的插件,但是我没有在SQL客户端访问我的数据的可能性. ..

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

你怎么解决这个问题?您在Heroku的真实应用程序中体验到了什么?

谢谢!

mik*_*son 11

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

点击:从理论上讲,您可以在本地创建数据库,并使用点击将模式和数据复制到Heroku.在实践中,大多数时候它非常棒.但是我目前正在处理清理后,我的一些列很糟糕并且损坏了我的数据.

Heroku控制台:对于所有常见的ActiveRecord内容完全没问题,但最接近数据库的是ActiveRecord :: Base.connection.execute"some sql".当你发现自己想要做那样的alter table命令时,你就会知道你遇到了麻烦.

它们还提供"捆绑"作为备份应用程序的方法.这使您可以下载所有代码以及数据库的sql转储.困难在于,由于没有直接的数据库访问,因此无法将相同的sql转储加载回数据库,因此您可以从dataloss中恢复,对我来说,这就是开始使用这些转储文件的重点.你可以使用bundle来创建一个新的应用程序(heroku bundle:animate),而不是恢复当前的应用程序.

我想对任何/所有这些都是错的.在我所知道的最好的思考服务中,这似乎是一个奇怪的粗糙点.当您执行的大部分工作变得如此简单时,数据库访问通常不会让您放弃.

对我来说,数据库访问就像一个灭火器.通常不是什么大问题,但重要的是,它很重要.


Tim*_*van 6

我使用admin_data给我一些关于发生了什么的见解.我已成功在Heroku以及其他托管服务提供商上使用它.