ridgepole 1.0.1 → 3.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +234 -99
- data/README.md +131 -26
- data/bin/ridgepole +16 -7
- data/lib/ridgepole/cli/config.rb +8 -15
- data/lib/ridgepole/client.rb +3 -2
- data/lib/ridgepole/default_limit.rb +13 -9
- data/lib/ridgepole/delta.rb +211 -17
- data/lib/ridgepole/diff.rb +207 -19
- data/lib/ridgepole/dsl_parser/context.rb +56 -3
- data/lib/ridgepole/dsl_parser/table_definition.rb +49 -21
- data/lib/ridgepole/dsl_parser.rb +24 -8
- data/lib/ridgepole/dumper.rb +7 -3
- data/lib/ridgepole/execute_expander.rb +34 -8
- data/lib/ridgepole/ext/abstract_adapter/disable_table_options.rb +0 -2
- data/lib/ridgepole/ext/schema_dumper/disable_sort_columns.rb +28 -0
- data/lib/ridgepole/ext/schema_dumper/foreign_keys.rb +68 -0
- data/lib/ridgepole/external_sql_executer.rb +1 -12
- data/lib/ridgepole/logger.rb +1 -0
- data/lib/ridgepole/version.rb +1 -1
- data/lib/ridgepole.rb +1 -1
- metadata +102 -33
- data/.rspec +0 -3
- data/.rubocop.yml +0 -53
- data/.simplecov +0 -6
- data/Appraisals +0 -22
- data/Gemfile +0 -6
- data/Rakefile +0 -13
- data/docker-compose.yml +0 -26
- data/gemfiles/activerecord_5.1.gemfile +0 -7
- data/gemfiles/activerecord_5.2.gemfile +0 -8
- data/gemfiles/activerecord_6.0.gemfile +0 -7
- data/gemfiles/activerecord_6.1.gemfile +0 -7
- data/gemfiles/activerecord_7.0.gemfile +0 -7
- data/lib/ridgepole/ext/schema_dumper.rb +0 -56
- data/ridgepole.gemspec +0 -47
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'active_record/schema_dumper'
|
|
4
|
-
|
|
5
|
-
module Ridgepole
|
|
6
|
-
module Ext
|
|
7
|
-
module SchemaDumper
|
|
8
|
-
def self.prepended(klass)
|
|
9
|
-
klass.extend ClassMethods
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
module ClassMethods
|
|
13
|
-
attr_reader :__with_default_fk_name
|
|
14
|
-
|
|
15
|
-
def with_default_fk_name(value)
|
|
16
|
-
@__with_default_fk_name = value
|
|
17
|
-
yield
|
|
18
|
-
ensure
|
|
19
|
-
remove_instance_variable(:@__with_default_fk_name)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def foreign_keys(table, stream)
|
|
24
|
-
return super unless ActiveRecord::SchemaDumper.__with_default_fk_name
|
|
25
|
-
|
|
26
|
-
if (foreign_keys = @connection.foreign_keys(table)).any?
|
|
27
|
-
add_foreign_key_statements = foreign_keys.map do |foreign_key|
|
|
28
|
-
parts = [
|
|
29
|
-
"add_foreign_key #{remove_prefix_and_suffix(foreign_key.from_table).inspect}",
|
|
30
|
-
remove_prefix_and_suffix(foreign_key.to_table).inspect
|
|
31
|
-
]
|
|
32
|
-
|
|
33
|
-
parts << "column: #{foreign_key.column.inspect}" if foreign_key.column != @connection.foreign_key_column_for(foreign_key.to_table)
|
|
34
|
-
|
|
35
|
-
parts << "primary_key: #{foreign_key.primary_key.inspect}" if foreign_key.custom_primary_key?
|
|
36
|
-
|
|
37
|
-
parts << "name: #{foreign_key.name.inspect}"
|
|
38
|
-
|
|
39
|
-
parts << "on_update: #{foreign_key.on_update.inspect}" if foreign_key.on_update
|
|
40
|
-
parts << "on_delete: #{foreign_key.on_delete.inspect}" if foreign_key.on_delete
|
|
41
|
-
|
|
42
|
-
" #{parts.join(', ')}"
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
stream.puts add_foreign_key_statements.sort.join("\n")
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
module ActiveRecord
|
|
53
|
-
class SchemaDumper
|
|
54
|
-
prepend Ridgepole::Ext::SchemaDumper
|
|
55
|
-
end
|
|
56
|
-
end
|
data/ridgepole.gemspec
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
lib = File.expand_path('lib', __dir__)
|
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
|
-
require 'ridgepole/version'
|
|
6
|
-
|
|
7
|
-
Gem::Specification.new do |spec|
|
|
8
|
-
spec.name = 'ridgepole'
|
|
9
|
-
spec.version = Ridgepole::VERSION
|
|
10
|
-
spec.authors = ['Genki Sugawara']
|
|
11
|
-
spec.email = ['sugawara@winebarrel.jp']
|
|
12
|
-
spec.summary = 'Ridgepole is a tool to manage DB schema.'
|
|
13
|
-
spec.description = 'Ridgepole is a tool to manage DB schema. It defines DB schema using Rails DSL, and updates DB schema according to DSL.'
|
|
14
|
-
spec.homepage = 'https://github.com/ridgepole/ridgepole'
|
|
15
|
-
spec.license = 'MIT'
|
|
16
|
-
|
|
17
|
-
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
18
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
|
19
|
-
f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
23
|
-
spec.require_paths = ['lib']
|
|
24
|
-
|
|
25
|
-
spec.required_ruby_version = Gem::Requirement.new('>= 2.2.7') # rubocop:disable Gemspec/RequiredRubyVersion
|
|
26
|
-
|
|
27
|
-
spec.add_dependency 'activerecord', '>= 5.1', '< 7.1'
|
|
28
|
-
spec.add_dependency 'diffy'
|
|
29
|
-
|
|
30
|
-
spec.add_development_dependency 'appraisal', '>= 2.2.0'
|
|
31
|
-
spec.add_development_dependency 'bundler'
|
|
32
|
-
spec.add_development_dependency 'erbh', '>= 0.2.1'
|
|
33
|
-
spec.add_development_dependency 'hash_modern_inspect', '>= 0.1.1'
|
|
34
|
-
spec.add_development_dependency 'hash_order_helper', '>= 0.1.6'
|
|
35
|
-
spec.add_development_dependency 'mysql2'
|
|
36
|
-
spec.add_development_dependency 'pg'
|
|
37
|
-
spec.add_development_dependency 'rake'
|
|
38
|
-
spec.add_development_dependency 'rspec', '>= 3.0.0'
|
|
39
|
-
spec.add_development_dependency 'rspec-match_fuzzy', '>= 0.1.3'
|
|
40
|
-
spec.add_development_dependency 'rspec-match_ruby', '>= 0.1.3'
|
|
41
|
-
spec.add_development_dependency 'rubocop', '1.24.1'
|
|
42
|
-
spec.add_development_dependency 'rubocop-rake', '>= 0.5.1'
|
|
43
|
-
spec.add_development_dependency 'rubocop-rspec', '>= 2.1.0'
|
|
44
|
-
spec.add_development_dependency 'simplecov'
|
|
45
|
-
spec.add_development_dependency 'simplecov-lcov'
|
|
46
|
-
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
47
|
-
end
|