module Blue::Postgresql
Constants
- VERSION
Public Class Methods
included(klass)
click to toggle source
# File lib/blue/postgresql.rb, line 85 def self.included(klass) klass.add_role(:db) klass.add_role(:postgresql) klass.class_eval do recipe :postgresql end end
Public Instance Methods
postgresql(options = {})
click to toggle source
# File lib/blue/postgresql.rb, line 14 def postgresql(options = {}) file "/etc/apt/sources.list.d/pgdg.list", :ensure => :present, :content => "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" exec 'get gpg key', :command => "wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -", :require => file("/etc/apt/sources.list.d/pgdg.list"), :unless => "test -x /usr/bin/psql" exec 'apt-get update', :command => 'apt-get update', :require => exec("get gpg key"), :unless => "test -x /usr/bin/psql" packages = ["postgresql-#{Blue.config.postgresql.version}", "postgresql-client-#{Blue.config.postgresql.version}", "postgresql-contrib-#{Blue.config.postgresql.version}", "libpq-dev"] packages.each do |pkg| package pkg, :ensure => :installed, :require => exec("apt-get update") end file "/etc/postgresql/#{Blue.config.postgresql.version}/main/pg_hba.conf", :ensure => :present, :content => template(File.join(File.dirname(__FILE__), '..', '..', 'templates', 'pg_hba.conf.erb'), binding), :require => package("postgresql-#{Blue.config.postgresql.version}"), :mode => '600', :owner => 'postgres', :group => 'postgres', :notify => service("postgresql-#{Blue.config.postgresql.version}") file "/etc/postgresql/#{Blue.config.postgresql.version}/main/postgresql.conf", :ensure => :present, :content => template(File.join(File.dirname(__FILE__), '..', '..', 'templates', 'postgresql.conf.erb'), binding), :require => package("postgresql-#{Blue.config.postgresql.version}"), :mode => '600', :owner => 'postgres', :group => 'postgres', :notify => service("postgresql-#{Blue.config.postgresql.version}") service "postgresql", :alias => "postgresql-#{Blue.config.postgresql.version}", :hasstatus => true, :require => packages.map{|pkg| package(pkg)} psql "CREATE USER #{Blue.config.database.username} WITH PASSWORD '#{Blue.config.database.password}'", :alias => "postgresql_user", :unless => psql_query('\\\\du') + "| grep #{Blue.config.database.username}", :require => service("postgresql") exec "postgresql_database", :command => "/usr/bin/createdb -O #{Blue.config.database.username} #{Blue.config.database.database}", :unless => "/usr/bin/psql -l | grep #{Blue.config.database.database}", :user => 'postgres', :require => exec('postgresql_user') end
psql(query, options = {})
click to toggle source
# File lib/blue/postgresql.rb, line 72 def psql(query, options = {}) name = options.delete(:alias) || "psql #{query}" hash = { :command => psql_query(query), :user => 'postgres' }.merge(options) exec(name,hash) end
psql_query(sql)
click to toggle source
# File lib/blue/postgresql.rb, line 81 def psql_query(sql) %(/usr/bin/psql -c "#{sql}") end