Ruby on rails 多个应用程序,一个数据库

Ruby on rails 多个应用程序,一个数据库,ruby-on-rails,rails-postgresql,heroku-postgres,Ruby On Rails,Rails Postgresql,Heroku Postgres,我和一位朋友有一个想法,通过heroku使用Postgres创建多个应用程序 我们是否可以将所有数据库绑定到一个单一的数据库中,方法是单独推送每个数据库,或将它们全部编入索引?是使用应用程序中的heroku config和配置的数据库来获取连接字符串。然后使用heroku配置:设置PG_URL=3829w:8eh8fe78hfd@ffeiwfafdsa.amazonaws.com/8fdHUfdsa在其他应用程序中设置数据库。现在两个应用程序将使用相同的数据库。它们不会相互覆盖,但会写入同一个数

我和一位朋友有一个想法,通过heroku使用Postgres创建多个应用程序


我们是否可以将所有数据库绑定到一个单一的数据库中,方法是单独推送每个数据库,或将它们全部编入索引?

是使用应用程序中的heroku config和配置的数据库来获取连接字符串。然后使用heroku配置:设置PG_URL=3829w:8eh8fe78hfd@ffeiwfafdsa.amazonaws.com/8fdHUfdsa在其他应用程序中设置数据库。现在两个应用程序将使用相同的数据库。它们不会相互覆盖,但会写入同一个数据库

Yes在配置了数据库的应用程序中使用
heroku config
,以获取连接字符串。然后使用heroku配置:设置PG_URL=3829w:8eh8fe78hfd@ffeiwfafdsa.amazonaws.com/8fdHUfdsa在其他应用程序中设置数据库。现在两个应用程序将使用相同的数据库。它们不会相互覆盖,但会写入同一个数据库

您可以创建多个模式,这将为每个模式的表命名名称空间,并避免每个应用程序模型之间的名称冲突

在数据库中使用多个模式的最常见用例是构建软件即服务应用程序,其中每个客户都有自己的模式

另一方面(正如链接所指出的),多个模式会显著降低性能。您还可以在应用程序之间共享连接限制、缓存和磁盘空间。根据您的使用情况,这可能不是问题,但请注意

进一步阅读:

  • 创建架构
    文档:
  • 将每个应用程序中的
    database.yml
    中的
    schema\u search\u path
    设置为各个模式:

您可以创建多个模式,这将为每个模式的表命名名称,并避免每个应用程序模型之间的名称冲突

在数据库中使用多个模式的最常见用例是构建软件即服务应用程序,其中每个客户都有自己的模式

另一方面(正如链接所指出的),多个模式会显著降低性能。您还可以在应用程序之间共享连接限制、缓存和磁盘空间。根据您的使用情况,这可能不是问题,但请注意

进一步阅读:

  • 创建架构
    文档:
  • 将每个应用程序中的
    database.yml
    中的
    schema\u search\u path
    设置为各个模式:

只需将所有应用程序指向同一数据库即可。我原以为这会奏效,但也会有相同的型号名称。它们会相互覆盖吗?为什么还要使用相同的数据库?如果你是小气鬼,就用不同的名字来命名你的模特吧。如果有实际理由使用相同的数据库,那么具有相同名称的模型实际上是一个加号。只需将所有应用程序指向相同的数据库即可。我认为这会起作用,但也会有相同的模型名称。它们会相互覆盖吗?为什么还要使用相同的数据库?如果你是小气鬼,就用不同的名字来命名你的模特吧。如果有实际理由使用相同的数据库,那么具有相同名称的模型实际上是一个加号。现在,如果两个(或更多)应用程序使用具有不同字段集、验证集等的模型(
User
),则会出现问题。来自一个应用程序的数据可能会破坏其他应用程序。如果是多租户场景,则应在模型/表前面加前缀。如果数据是要共享的,那么他们就会明白。感谢您的洞察力。现在,如果两个(或更多)应用程序使用具有不同字段集、验证集等的模型(
User
),那么就会出现问题。来自一个应用程序的数据可能会破坏其他应用程序。如果是多租户场景,则应在模型/表前面加前缀。如果数据是要共享的,那么他们会明白的。谢谢你的洞察力。