Module: DbSchema
- Defined in:
- lib/db_schema.rb,
lib/db_schema/dsl.rb,
lib/db_schema/utils.rb,
lib/db_schema/reader.rb,
lib/db_schema/runner.rb,
lib/db_schema/changes.rb,
lib/db_schema/version.rb,
lib/db_schema/validator.rb,
lib/db_schema/normalizer.rb,
lib/db_schema/definitions.rb,
lib/db_schema/configuration.rb,
lib/db_schema/definitions/field.rb,
lib/db_schema/definitions/field/base.rb,
lib/db_schema/definitions/field/json.rb,
lib/db_schema/definitions/field/uuid.rb,
lib/db_schema/definitions/field/array.rb,
lib/db_schema/definitions/field/range.rb,
lib/db_schema/definitions/field/binary.rb,
lib/db_schema/definitions/field/custom.rb,
lib/db_schema/definitions/field/boolean.rb,
lib/db_schema/definitions/field/network.rb,
lib/db_schema/definitions/field/numeric.rb,
lib/db_schema/definitions/field/datetime.rb,
lib/db_schema/definitions/field/monetary.rb,
lib/db_schema/definitions/field/character.rb,
lib/db_schema/definitions/field/geometric.rb,
lib/db_schema/definitions/field/bit_string.rb,
lib/db_schema/definitions/field/text_search.rb,
lib/db_schema/definitions/field/extensions/isn.rb,
lib/db_schema/definitions/field/extensions/seg.rb,
lib/db_schema/definitions/field/extensions/cube.rb,
lib/db_schema/definitions/field/extensions/ltree.rb,
lib/db_schema/definitions/field/extensions/citext.rb,
lib/db_schema/definitions/field/extensions/hstore.rb,
lib/db_schema/definitions/field/extensions/chkpass.rb
Defined Under Namespace
Modules: Changes, Definitions, Reader, Utils, Validator
Classes: Configuration, DSL, InvalidSchemaError, Normalizer, Runner, SchemaMismatch, UnsupportedOperation
Constant Summary
collapse
- VERSION =
'0.2.3'
Class Method Summary
collapse
Class Method Details
.configuration ⇒ Object
67
68
69
70
71
|
# File 'lib/db_schema.rb', line 67
def configuration
raise 'You must call DbSchema.configure in order to connect to the database.' if @configuration.nil?
@configuration
end
|
51
52
53
54
|
# File 'lib/db_schema.rb', line 51
def configure(connection_parameters)
@configuration = Configuration.new(connection_parameters)
@connection = nil
end
|
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/db_schema.rb', line 56
def configure_from_yaml(yaml_path, environment, **other_options)
data = Utils.symbolize_keys(YAML.load_file(yaml_path))
filtered_data = Utils.filter_by_keys(
data[environment.to_sym],
*%i(adapter host port database username password)
)
renamed_data = Utils.rename_keys(filtered_data, username: :user)
configure(renamed_data.merge(other_options))
end
|
.connection ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/db_schema.rb', line 37
def connection
@connection ||= Sequel.connect(
adapter: configuration.adapter,
host: configuration.host,
port: configuration.port,
database: configuration.database,
user: configuration.user,
password: configuration.password
).tap do |db|
db.extension :pg_enum
db.extension :pg_array
end
end
|
.describe(&block) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/db_schema.rb', line 18
def describe(&block)
desired_schema = DSL.new(block).schema
validate(desired_schema)
Normalizer.normalize_tables(desired_schema)
actual_schema = Reader.read_schema
changes = Changes.between(desired_schema, actual_schema)
return if changes.empty?
log_changes(changes) if configuration.log_changes?
return if configuration.dry_run?
Runner.new(changes).run!
if configuration.post_check_enabled?
perform_post_check(desired_schema)
end
end
|
.reset! ⇒ Object
73
74
75
76
|
# File 'lib/db_schema.rb', line 73
def reset!
@configuration = nil
@connection = nil
end
|