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