Class: DynamicMigrations::Postgres::Server::Database

Inherits:
Object
  • Object
show all
Includes:
ConfiguredExtensions, ConfiguredSchemas, Connection, EnumsLoader, ExtensionsLoader, KeysAndUniqueConstraintsLoader, LoadedExtensions, LoadedSchemas, LoadedSchemasBuilder, StructureLoader, TriggersAndFunctionsLoader, ValidationsLoader
Defined in:
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 database. A database can contain many different schemas.

Defined Under Namespace

Modules: ConfiguredExtensions, ConfiguredSchemas, Connection, EnumsLoader, ExtensionsLoader, KeysAndUniqueConstraintsLoader, LoadedExtensions, LoadedSchemas, LoadedSchemasBuilder, StructureLoader, TriggersAndFunctionsLoader, ValidationsLoader Classes: Differences, ExpectedServerError, Schema, Source

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ExtensionsLoader

#fetch_extensions

Methods included from EnumsLoader

#fetch_enums

Methods included from LoadedExtensions

#add_loaded_extension, #has_loaded_extension?, #loaded_extensions

Methods included from ConfiguredExtensions

#add_configured_extension, #configured_extensions, #has_configured_extension?

Methods included from LoadedSchemasBuilder

#recursively_load_database_structure

Methods included from ConfiguredSchemas

#add_configured_schema, #configured_schema, #configured_schemas, #configured_schemas_hash, #has_configured_schema?

Methods included from LoadedSchemas

#add_loaded_schema, #has_loaded_schema?, #loaded_schema, #loaded_schemas, #loaded_schemas_hash

Methods included from TriggersAndFunctionsLoader

#fetch_triggers_and_functions

Methods included from KeysAndUniqueConstraintsLoader

#create_database_keys_and_unique_constraints_cache, #fetch_keys_and_unique_constraints, #refresh_database_keys_and_unique_constraints_cache

Methods included from ValidationsLoader

#create_database_validations_cache, #fetch_validations, #refresh_database_validations_cache

Methods included from StructureLoader

#create_database_structure_cache, #fetch_schema_names, #fetch_structure, #fetch_table_names, #refresh_database_structure_cache

Methods included from Connection

#connect, #connected?, #connection, #disconnect, #with_connection

Constructor Details

#initialize(server, name) ⇒ Database

initialize a new object to represent a postgres database



29
30
31
32
33
34
35
36
37
38
# File 'lib/dynamic_migrations/postgres/server/database.rb', line 29

def initialize server, name
  raise ExpectedServerError, server unless server.is_a? Server
  raise ExpectedSymbolError, name unless name.is_a? Symbol
  @server = server
  @name = name
  @configured_schemas = {}
  @loaded_schemas = {}
  @configured_extensions = {}
  @loaded_extensions = {}
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



26
27
28
# File 'lib/dynamic_migrations/postgres/server/database.rb', line 26

def name
  @name
end

#serverObject (readonly)

Returns the value of attribute server.



25
26
27
# File 'lib/dynamic_migrations/postgres/server/database.rb', line 25

def server
  @server
end

Instance Method Details

#differencesObject



55
56
57
# File 'lib/dynamic_migrations/postgres/server/database.rb', line 55

def differences
  Differences.new(self)
end

#refresh_cachesObject



59
60
61
62
63
# File 'lib/dynamic_migrations/postgres/server/database.rb', line 59

def refresh_caches
  refresh_database_structure_cache
  refresh_database_keys_and_unique_constraints_cache
  refresh_database_validations_cache
end

#schema(schema_name, source) ⇒ Object

if source is :configuration then returns the configured schema with the provided name, if source is :database then returns the loaded schema with the provided name, errors are raised if the requested schema does not exist or an unexpected source value is provided



44
45
46
47
48
49
50
51
52
53
# File 'lib/dynamic_migrations/postgres/server/database.rb', line 44

def schema schema_name, source
  case source
  when :configuration
    configured_schema schema_name
  when :database
    loaded_schema schema_name
  else
    raise InvalidSourceError, source
  end
end