Defined Type: postgresql::db

Defined in:
manifests/db.pp

Overview

Define: postgresql::db

Add a postgresql database

db_name

Database name Default: $name

owner

Database owner Default: unset

template

Database template to used Default: unset

Parameters:

  • db_name (Any) (defaults to: $name)
  • owner (Any) (defaults to: undef)
  • template (Any) (defaults to: undef)
  • encoding (Any) (defaults to: undef)


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'manifests/db.pp', line 17

define postgresql::db (
  $db_name         = $name,
  $owner           = undef,
  $template        = undef,
  $encoding        = undef
) {

  # Generate query
  $manage_query_start = "CREATE DATABASE \\\"${db_name}\\\""

  if $owner == undef {
    $manage_query_owner = ''
  } else {
    $manage_query_owner = " OWNER \\\"${owner}\\\""
  }

  if $template == undef {
    $manage_query_template = ''
  } else {
    $manage_query_template = " TEMPLATE \\\"${template}\\\""
  }

  if $encoding == undef {
    $manage_query_encoding = ''
  } else {
    $manage_query_encoding = " ENCODING '${encoding}'"
  }

  $manage_query_end = ';'

  $manage_query = "${manage_query_start}${manage_query_owner}${manage_query_template}${manage_query_encoding}${manage_query_end}"


  # Gerate options
  $manage_query_unless = "psql --list -t -A | grep -q \"^${db_name}|\""
  $manage_query_command = "echo \"${manage_query}\" | /usr/bin/psql"

  exec { "postgresql_db_${name}":
    user    => $postgresql::process_user,
    path    => '/bin:/usr/bin:/bin/usr/sbin:/sbin',
    unless  => $manage_query_unless,
    command => $manage_query_command,
    require => Service['postgresql'],
  }


}