diff options
Diffstat (limited to 'lib/puppet/rails.rb')
-rw-r--r-- | lib/puppet/rails.rb | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/lib/puppet/rails.rb b/lib/puppet/rails.rb index e9eeeaed5..2a5b31408 100644 --- a/lib/puppet/rails.rb +++ b/lib/puppet/rails.rb @@ -43,32 +43,34 @@ module Puppet::Rails } ) - def self.setupdb - - end - + # Set up our database connection. It'd be nice to have a "use" system + # that could make callbacks. def self.init - Puppet.config.use(:puppet) - Puppet.config.use(:puppetmaster) + unless defined? @inited and @inited + Puppet.config.use(:puppet) + Puppet.config.use(:puppetmaster) - ActiveRecord::Base.logger = Logger.new(Puppet[:railslog]) - args = {:adapter => Puppet[:dbadapter]} + ActiveRecord::Base.logger = Logger.new(Puppet[:railslog]) + args = {:adapter => Puppet[:dbadapter]} - case Puppet[:dbadapter] - when "sqlite3": - args[:database] = Puppet[:dblocation] - when "mysql": - args[:host] = Puppet[:dbserver] - args[:username] = Puppet[:dbuser] - args[:password] = Puppet[:dbpassword] - args[:database] = Puppet[:dbname] - end + case Puppet[:dbadapter] + when "sqlite3": + args[:database] = Puppet[:dblocation] + when "mysql": + args[:host] = Puppet[:dbserver] + args[:username] = Puppet[:dbuser] + args[:password] = Puppet[:dbpassword] + args[:database] = Puppet[:dbname] + end + + ActiveRecord::Base.establish_connection(args) - ActiveRecord::Base.establish_connection(args) + unless FileTest.exists?(args[:database]) + require 'puppet/rails/database' + Puppet::Rails::Database.up + end - unless FileTest.exists?(args[:database]) - require 'puppet/rails/database' - Puppet::Rails::Database.up + @inited = true end end end |