[Git][noosfero/noosfero][master] 2 commits: allows erb templates in_database.yml
Antonio Terceiro
gitlab at mg.gitlab.com
Mon Jan 4 13:21:05 BRST 2016
Antonio Terceiro pushed to branch master at Noosfero / noosfero
Commits:
472a65c0 by Evandro Jr at 2015-12-30T13:40:54Z
allows erb templates in_database.yml
- - - - -
e1755d7e by Antonio Terceiro at 2016-01-04T15:20:48Z
Merge branch 'allow_erb_template_in_database_yml' into 'master'
allows erb templates in_database.yml
This MR will allows us to do use erb templating syntax inside config/database.yml
Example:
<code>
<%
# http://mislav.uniqpath.com/rails/branching-the-database-along-with-your-code/
app = "noosfero"
branch = `git symbolic-ref HEAD 2>/dev/null`.chomp.sub('refs/heads/', '')
user = (`whoami`).gsub(/\W/, '')
%>
development:
adapter: postgresql
encoding: unicode
database: <%= "#{app}_#{branch}_development" %>
template: template0
username: <%= user %>
password:
</code>
Did not break any test that was passing before:
Before: https://travis-ci.org/noosfero/noosfero/builds/99440879
After: https://travis-ci.org/evandrojr/noosferogov/jobs/99462155
See merge request !755
- - - - -
3 changed files:
- lib/noosfero/multi_tenancy.rb
- lib/tasks/backup.rake
- script/odbcconf
Changes:
=====================================
lib/noosfero/multi_tenancy.rb
=====================================
--- a/lib/noosfero/multi_tenancy.rb
+++ b/lib/noosfero/multi_tenancy.rb
@@ -26,7 +26,7 @@ module Noosfero
def self.load_map
db_file = Rails.root.join('config', 'database.yml')
- db_config = YAML.load_file(db_file)
+ db_config = YAML.load(ERB.new(File.read(db_file)).result)
map = { }
db_config.each do |env, attr|
next unless env.match(/_#{Rails.env}$/) and attr['adapter'] =~ /^postgresql$/i
@@ -37,7 +37,7 @@ module Noosfero
def self.is_hosted_environment?
db_file = Rails.root.join('config', 'database.yml')
- db_config = YAML.load_file(db_file)
+ db_config = YAML.load(ERB.new(File.read(db_file)).result)
db_config.select{ |env, attr| Rails.env.to_s.match(/_#{env}$/) }.any?
end
=====================================
lib/tasks/backup.rake
=====================================
--- a/lib/tasks/backup.rake
+++ b/lib/tasks/backup.rake
@@ -1,5 +1,6 @@
task :load_backup_config do
- $config = YAML.load_file('config/database.yml')
+ db_file = Rails.root.join('config', 'database.yml')
+ $config = YAML.load(ERB.new(File.read(db_file)).result)
end
task :check_backup_support => :load_backup_config do
=====================================
script/odbcconf
=====================================
--- a/script/odbcconf
+++ b/script/odbcconf
@@ -1,8 +1,9 @@
#!/usr/bin/env ruby
require 'yaml'
-config = YAML.load_file(File.dirname(__FILE__) + '/../config/database.yml')['production']
+require 'erb'
+config = YAML.load(ERB.new(File.read(File.dirname(__FILE__) + '/../config/database.yml')).result)['production']
puts "[PostgreSQLEjabberdNoosfero]"
puts "Description = PostgreSQL Noosfero ejabberd database"
View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/beee8706035adc8ff38f8b25baeab936bbc389a6...e1755d7e645dcdc40bc5f4ff1eeff97c6d0e67ff
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20160104/5980a91c/attachment-0001.html>
More information about the Noosfero-dev
mailing list