【问题标题】:Update many heroku Apps with one Rails Project用一个 Rails 项目更新许多 Heroku 应用程序
【发布时间】:2019-12-10 04:02:29
【问题描述】:

我想知道是否有可能拥有一个 Rails 应用程序,我有许多不同的客户端使用同一个应用程序,每个客户端在 Heroku 中都有自己的 PostGreSQL 数据库,所以我们有相同的项目要更新当我推送到 Heroku 时,为所有这些客户提供服务。

你知道是否可以做到吗?

以及如何在更新中忽略 database.yml 文件,因为每个客户端都有自己的数据库。

谢谢!

【问题讨论】:

    标签: heroku-postgres heroku-toolbelt


    【解决方案1】:

    你可以,但你可能不应该!

    您可以将任意数量的 Heroku Postgres 实例附加到 Heroku 应用程序。您会看到您创建的每个实例都将一个连接字符串添加到环境变量列表中 - 列在应用程序的设置选项卡下。

    您可以通过一些唯一标识符将密钥字符串映射到客户。然后,您需要一个拦截器来将连接绑定到相关数据库 - 或从预绑定列表中选择相关连接 - 并将其添加到每个请求的请求上下文中。

    这是一种混乱的方法,不推荐。如果您改为为每个客户创建一个单独的模式,那么麻烦会稍微少一些。通过这种方式,您可以绑定到单个数据库实例并保留您的 database.yml 配置。但是,每个客户都有自己的专用架构。然而,这些是 Heroku 功能更多的架构问题。从 Heroku 的角度来看,多数据库和多模式方法都是可能的。

    应该注意的是,在应用程序逻辑级别,这两种方法都不会比具有足够身份验证机制的标准角色和权限提供更多的引用完整性...所有模式和/或数据库对同一应用程序都是可见的,无论其数据库级别的分离。所以,它确实没有什么实际的好处。

    【讨论】:

    • 感谢您的提示,travega!我会检查什么会更好..
    猜你喜欢
    • 2011-01-08
    • 2012-12-09
    • 2020-06-30
    • 2013-09-18
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多