0
Heroku是否附加了应用程序特定的应用程序,或者它们可以在多个应用程序之间共享?Heroku在应用程序之间部署共享附件
换句话说,如果我的帐户中有5个独立的应用程序,并且我希望每月200美元的Ronin Postgre DB附加组件和WebSolr Silver每月20美元,那么我的所有应用程序都可以使用它们的$ 220每月?或者你需要为每个单独的应用程序单独加载项吗?
Heroku是否附加了应用程序特定的应用程序,或者它们可以在多个应用程序之间共享?Heroku在应用程序之间部署共享附件
换句话说,如果我的帐户中有5个独立的应用程序,并且我希望每月200美元的Ronin Postgre DB附加组件和WebSolr Silver每月20美元,那么我的所有应用程序都可以使用它们的$ 220每月?或者你需要为每个单独的应用程序单独加载项吗?
是的,你可以在应用程序之间共享数据库实例 - 事实上,你甚至不需要使用Ronin插件,你可以使用包含的PG来实现 - 参见this线程,我提出了一个解决方案,在第二个应用程序中使用与第一个相同的DB url。
当你的Heroku插件通常写一堆Heroku的配置变量为您的应用程序,他们则在他们写文件使用的 - 例如database.yml中 - 实际database.yml文件的Heroku写入到您的应用程序是:
<%
require 'cgi'
require 'uri'
begin
uri = URI.parse(ENV["DATABASE_URL"])
rescue URI::InvalidURIError
raise "Invalid DATABASE_URL"
end
raise "No RACK_ENV or RAILS_ENV found" unless ENV["RAILS_ENV"] || ENV["RACK_ENV"]
def attribute(name, value)
value ? "#{name}: #{value}" : ""
end
adapter = uri.scheme
adapter = "postgresql" if adapter == "postgres"
database = (uri.path || "").split("/")[1]
username = uri.user
password = uri.password
host = uri.host
port = uri.port
params = CGI.parse(uri.query || "")
%>
<%= ENV["RAILS_ENV"] || ENV["RACK_ENV"] %>:
<%= attribute "adapter", adapter %>
<%= attribute "database", database %>
<%= attribute "username", username %>
<%= attribute "password", password %>
<%= attribute "host", host %>
<%= attribute "port", port %>
<% params.each do |key, value| %>
<%= key %>: <%= value.first %>
<% end %>
我会想象如果将它添加到单个实例,然后看看在其他应用程序中设置和设置了相同的配置变量,websolr也可能会发生同样的情况。我也想象这是Heroku不支持的,他们会积极阻止你这样做。
感谢您分享数据库的信息。我继续与Heroku联系,并被告知通常大多数附加组件都是特定于应用程序的,但可以共享数据库,但不是WebSolr附加组件。正如你所提到的那样,可能有办法,但他们可能不希望这样。 – Frank