Skip to content

Instantly share code, notes, and snippets.

@Geesu
Created May 11, 2015 18:08
Show Gist options
  • Save Geesu/fb5aea940f569104402f to your computer and use it in GitHub Desktop.
Save Geesu/fb5aea940f569104402f to your computer and use it in GitHub Desktop.
<%
require 'cgi'
require 'uri'
begin
uri = URI.parse(Rails.configuration.read_db_url)
rescue URI::InvalidURIError
uri = URI.parse(Rails.configuration.master_db_url)
rescue URI::InvalidURIError
raise "Unable to set the read database url"
end
def attribute(name, value, force_string = false)
if value
value_string =
if force_string
'"' + value + '"'
else
value
end
"#{name}: #{value_string}"
else
""
end
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 || "")
params['reaping_frequency'] = [Rails.configuration.db.reaping_frequency]
params['pool'] = [Rails.configuration.db.pool_size]
%>
octopus:
replicated: true
fully_replicated: false
environments:
- development
- staging
- production
<%= ENV["RAILS_ENV"] || ENV["RACK_ENV"] || 'development' %>:
slave1:
<%= attribute "adapter", adapter %>
<%= attribute "database", database %>
<%= attribute "username", username %>
<%= attribute "password", password, true %>
<%= attribute "host", host %>
<%= attribute "port", port %>
<% params.each do |key, value| %>
<%= key %>: <%= value.first %>
<% end %>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment