Class: DynamicMigrations::Postgres::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/dynamic_migrations/postgres/server.rb,
lib/dynamic_migrations/postgres/server/database.rb,
lib/dynamic_migrations/postgres/server/database/schema.rb,
lib/dynamic_migrations/postgres/server/database/source.rb,
lib/dynamic_migrations/postgres/server/database/connection.rb,
lib/dynamic_migrations/postgres/server/database/differences.rb,
lib/dynamic_migrations/postgres/server/database/schema/enum.rb,
lib/dynamic_migrations/postgres/server/database/enums_loader.rb,
lib/dynamic_migrations/postgres/server/database/schema/enums.rb,
lib/dynamic_migrations/postgres/server/database/schema/table.rb,
lib/dynamic_migrations/postgres/server/database/schema/tables.rb,
lib/dynamic_migrations/postgres/server/database/loaded_schemas.rb,
lib/dynamic_migrations/postgres/server/database/schema/function.rb,
lib/dynamic_migrations/postgres/server/database/schema/functions.rb,
lib/dynamic_migrations/postgres/server/database/structure_loader.rb,
lib/dynamic_migrations/postgres/server/database/extensions_loader.rb,
lib/dynamic_migrations/postgres/server/database/loaded_extensions.rb,
lib/dynamic_migrations/postgres/server/database/configured_schemas.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/index.rb,
lib/dynamic_migrations/postgres/server/database/validations_loader.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/column.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/columns.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/indexes.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/trigger.rb,
lib/dynamic_migrations/postgres/server/database/configured_extensions.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/triggers.rb,
lib/dynamic_migrations/postgres/server/database/loaded_schemas_builder.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/validation.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/primary_key.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/validations.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations.rb,
lib/dynamic_migrations/postgres/server/database/triggers_and_functions_loader.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/unique_constraint.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/unique_constraints.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas.rb,
lib/dynamic_migrations/postgres/server/database/keys_and_unique_constraints_loader.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/foreign_key_constraint.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/extensions.rb,
lib/dynamic_migrations/postgres/server/database/schema/table/foreign_key_constraints.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/enums.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/functions.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/columns.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/indexes.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/triggers.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/primary_key.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/validations.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/unique_constraints.rb,
lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/foreign_key_constraints.rb

Overview

This class represents a postgres server. A server can contain many databases.

Defined Under Namespace

Classes: Database, DatabaseAlreadyExistsError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(host, port, username, password) ⇒ Server

initialize a new object to represent a postgres server



13
14
15
16
17
18
19
# File 'lib/dynamic_migrations/postgres/server.rb', line 13

def initialize host, port, username, password
  @host = host
  @port = port
  @username = username
  @password = password
  @databases = {}
end

Instance Attribute Details

#hostObject (readonly)

Returns the value of attribute host.



10
11
12
# File 'lib/dynamic_migrations/postgres/server.rb', line 10

def host
  @host
end

#passwordObject (readonly)

Returns the value of attribute password.



10
11
12
# File 'lib/dynamic_migrations/postgres/server.rb', line 10

def password
  @password
end

#portObject (readonly)

Returns the value of attribute port.



10
11
12
# File 'lib/dynamic_migrations/postgres/server.rb', line 10

def port
  @port
end

#usernameObject (readonly)

Returns the value of attribute username.



10
11
12
# File 'lib/dynamic_migrations/postgres/server.rb', line 10

def username
  @username
end

Instance Method Details

#add_database(name) ⇒ Object



21
22
23
24
25
# File 'lib/dynamic_migrations/postgres/server.rb', line 21

def add_database name
  raise ExpectedSymbolError, name unless name.is_a? Symbol
  raise DatabaseAlreadyExistsError, "database `#{name}` already exists" if @databases.key? name
  @databases[name] = Database.new self, name
end

#database(name) ⇒ Object



27
28
29
30
# File 'lib/dynamic_migrations/postgres/server.rb', line 27

def database name
  raise ExpectedSymbolError, name unless name.is_a? Symbol
  @databases[name]
end

#databasesObject



32
33
34
# File 'lib/dynamic_migrations/postgres/server.rb', line 32

def databases
  @databases.values
end

#migrationsObject



36
37
38
39
40
# File 'lib/dynamic_migrations/postgres/server.rb', line 36

def migrations
  databases.each_with_object({}) { |database, result|
    result[database.name] = database.differences.to_migrations
  }
end