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
|
@@ -13,19 +13,24 @@ module Ridgepole
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
module ConnectionAdapterExt
|
|
16
|
-
def
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
def execute_expander_internal_execute(sql, &block)
|
|
17
|
+
# Generated/virtual columns cannot have DEFAULT values in MySQL.
|
|
18
|
+
# Rails' change_column always adds DEFAULT from the existing column,
|
|
19
|
+
# so we strip it from the SQL for virtual columns.
|
|
20
|
+
# cf. https://github.com/ridgepole/ridgepole/issues/482
|
|
21
|
+
if Ridgepole::ConnectionAdapters.mysql? && !Ridgepole::ExecuteExpander.options[:bulk_change]
|
|
22
|
+
# NOTE: bulk_change does not support changing MySQL generated columns with `DEFAULT NULL`.
|
|
23
|
+
sql = sql.sub(/\bDEFAULT\s+NULL\z/i, '') if /\AALTER\s+TABLE\b/i.match?(sql) && /\bAS\s*\(/i.match?(sql) && /\bDEFAULT\s+NULL\z/i.match?(sql)
|
|
24
|
+
end
|
|
20
25
|
if Ridgepole::ExecuteExpander.noop
|
|
21
26
|
if (callback = Ridgepole::ExecuteExpander.callback)
|
|
22
27
|
sql = append_alter_extra(sql)
|
|
23
|
-
callback.call(sql
|
|
28
|
+
callback.call(sql)
|
|
24
29
|
end
|
|
25
30
|
|
|
26
31
|
if /\A(SELECT|SHOW)\b/i.match?(sql)
|
|
27
32
|
begin
|
|
28
|
-
|
|
33
|
+
block.call(sql)
|
|
29
34
|
rescue StandardError
|
|
30
35
|
Stub.new
|
|
31
36
|
end
|
|
@@ -34,7 +39,7 @@ module Ridgepole
|
|
|
34
39
|
end
|
|
35
40
|
elsif Ridgepole::ExecuteExpander.use_script
|
|
36
41
|
if /\A(SELECT|SHOW)\b/i.match?(sql)
|
|
37
|
-
|
|
42
|
+
block.call(sql)
|
|
38
43
|
else
|
|
39
44
|
sql = append_alter_extra(sql)
|
|
40
45
|
Ridgepole::ExecuteExpander.sql_executer.execute(sql)
|
|
@@ -42,10 +47,28 @@ module Ridgepole
|
|
|
42
47
|
end
|
|
43
48
|
else
|
|
44
49
|
sql = append_alter_extra(sql)
|
|
50
|
+
block.call(sql)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def execute(*args)
|
|
55
|
+
name = args[1]
|
|
56
|
+
execute_expander_internal_execute(args.fetch(0)) do |sql|
|
|
45
57
|
super(sql, name)
|
|
46
58
|
end
|
|
47
59
|
end
|
|
48
60
|
|
|
61
|
+
def execute_batch(statements, name = nil, **kwargs)
|
|
62
|
+
new_statements = []
|
|
63
|
+
statements.each do |statement|
|
|
64
|
+
execute_expander_internal_execute(statement) do |sql|
|
|
65
|
+
new_statements << sql
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
super(new_statements, name, **kwargs) unless new_statements.empty?
|
|
69
|
+
statements
|
|
70
|
+
end
|
|
71
|
+
|
|
49
72
|
private
|
|
50
73
|
|
|
51
74
|
def append_alter_extra(sql)
|
|
@@ -69,6 +92,7 @@ module Ridgepole
|
|
|
69
92
|
cattr_accessor :use_script, instance_writer: false, instance_reader: false
|
|
70
93
|
cattr_accessor :sql_executer, instance_writer: false, instance_reader: false
|
|
71
94
|
cattr_accessor :alter_extra, instance_writer: false, instance_reader: false
|
|
95
|
+
cattr_accessor :options, instance_writer: false, instance_reader: false
|
|
72
96
|
|
|
73
97
|
class << self
|
|
74
98
|
def without_operation(callback = nil)
|
|
@@ -96,9 +120,11 @@ module Ridgepole
|
|
|
96
120
|
self.alter_extra = nil
|
|
97
121
|
end
|
|
98
122
|
|
|
99
|
-
def expand_execute(connection)
|
|
123
|
+
def expand_execute(connection, options)
|
|
100
124
|
return if connection.is_a?(ConnectionAdapterExt)
|
|
101
125
|
|
|
126
|
+
self.options = options
|
|
127
|
+
|
|
102
128
|
connection.class_eval do
|
|
103
129
|
prepend ConnectionAdapterExt
|
|
104
130
|
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'active_record/schema_dumper'
|
|
4
|
+
|
|
5
|
+
module Ridgepole
|
|
6
|
+
module Ext
|
|
7
|
+
module SchemaDumper
|
|
8
|
+
module DisableSortColumns
|
|
9
|
+
def table(table, stream)
|
|
10
|
+
def @connection.columns(*_args)
|
|
11
|
+
cols = super
|
|
12
|
+
def cols.sort_by(*_args, &_block)
|
|
13
|
+
self
|
|
14
|
+
end
|
|
15
|
+
cols
|
|
16
|
+
end
|
|
17
|
+
super
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
module ActiveRecord
|
|
25
|
+
class SchemaDumper
|
|
26
|
+
prepend Ridgepole::Ext::SchemaDumper::DisableSortColumns
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'active_record/schema_dumper'
|
|
4
|
+
|
|
5
|
+
module Ridgepole
|
|
6
|
+
module Ext
|
|
7
|
+
module SchemaDumper
|
|
8
|
+
module ForeignKeys
|
|
9
|
+
def self.prepended(klass)
|
|
10
|
+
klass.extend ClassMethods
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
module ClassMethods
|
|
14
|
+
attr_reader :__with_default_fk_name
|
|
15
|
+
|
|
16
|
+
def with_default_fk_name(value)
|
|
17
|
+
@__with_default_fk_name = value
|
|
18
|
+
yield
|
|
19
|
+
ensure
|
|
20
|
+
remove_instance_variable(:@__with_default_fk_name)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def foreign_keys(table, stream)
|
|
25
|
+
return super unless ActiveRecord::SchemaDumper.__with_default_fk_name
|
|
26
|
+
|
|
27
|
+
if (foreign_keys = @connection.foreign_keys(table)).any?
|
|
28
|
+
add_foreign_key_statements = foreign_keys.map do |foreign_key|
|
|
29
|
+
parts = [
|
|
30
|
+
"add_foreign_key #{remove_prefix_and_suffix(foreign_key.from_table).inspect}",
|
|
31
|
+
remove_prefix_and_suffix(foreign_key.to_table).inspect
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
parts << "column: #{foreign_key.column.inspect}" if foreign_key.column != foreign_key_column_for(foreign_key)
|
|
35
|
+
|
|
36
|
+
parts << "primary_key: #{foreign_key.primary_key.inspect}" if foreign_key.custom_primary_key?
|
|
37
|
+
|
|
38
|
+
parts << "name: #{foreign_key.name.inspect}"
|
|
39
|
+
|
|
40
|
+
parts << "on_update: #{foreign_key.on_update.inspect}" if foreign_key.on_update
|
|
41
|
+
parts << "on_delete: #{foreign_key.on_delete.inspect}" if foreign_key.on_delete
|
|
42
|
+
|
|
43
|
+
" #{parts.join(', ')}"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
stream.puts add_foreign_key_statements.sort.join("\n")
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
def foreign_key_column_for(foreign_key)
|
|
53
|
+
if ActiveRecord.gem_version < Gem::Version.new('7.1.0')
|
|
54
|
+
@connection.foreign_key_column_for(foreign_key.to_table)
|
|
55
|
+
else
|
|
56
|
+
@connection.foreign_key_column_for(foreign_key.to_table, 'id')
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
module ActiveRecord
|
|
65
|
+
class SchemaDumper
|
|
66
|
+
prepend Ridgepole::Ext::SchemaDumper::ForeignKeys
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -8,7 +8,7 @@ module Ridgepole
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def execute(sql)
|
|
11
|
-
cmd = Shellwords.join([@script, sql, JSON.dump(
|
|
11
|
+
cmd = Shellwords.join([@script, sql, JSON.dump(ActiveRecord::Base.connection_db_config.configuration_hash)])
|
|
12
12
|
@logger.info("Execute #{@script}")
|
|
13
13
|
script_basename = File.basename(@script)
|
|
14
14
|
|
|
@@ -46,16 +46,5 @@ module Ridgepole
|
|
|
46
46
|
raise "`#{@script}` execution failed" unless wait_thr.value.success?
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
|
-
|
|
50
|
-
private
|
|
51
|
-
|
|
52
|
-
def connection_configuration_hash
|
|
53
|
-
if ActiveRecord.gem_version < Gem::Version.new('6.1.0')
|
|
54
|
-
# NOTE: Remove code when stopping support for versions below 6.1
|
|
55
|
-
ActiveRecord::Base.connection_config
|
|
56
|
-
else
|
|
57
|
-
ActiveRecord::Base.connection_db_config.configuration_hash
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
49
|
end
|
|
61
50
|
end
|
data/lib/ridgepole/logger.rb
CHANGED
data/lib/ridgepole/version.rb
CHANGED
data/lib/ridgepole.rb
CHANGED
|
@@ -17,7 +17,7 @@ module Ridgepole; end
|
|
|
17
17
|
|
|
18
18
|
require 'ridgepole/ext/abstract_adapter/disable_table_options'
|
|
19
19
|
require 'ridgepole/ext/pp_sort_hash'
|
|
20
|
-
require 'ridgepole/ext/schema_dumper'
|
|
20
|
+
require 'ridgepole/ext/schema_dumper/foreign_keys'
|
|
21
21
|
require 'ridgepole/client'
|
|
22
22
|
require 'ridgepole/connection_adapters'
|
|
23
23
|
require 'ridgepole/default_limit'
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ridgepole
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 3.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Genki Sugawara
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: activerecord
|
|
@@ -16,20 +15,20 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
18
|
+
version: '6.1'
|
|
20
19
|
- - "<"
|
|
21
20
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
21
|
+
version: '8.3'
|
|
23
22
|
type: :runtime
|
|
24
23
|
prerelease: false
|
|
25
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
25
|
requirements:
|
|
27
26
|
- - ">="
|
|
28
27
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
28
|
+
version: '6.1'
|
|
30
29
|
- - "<"
|
|
31
30
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
31
|
+
version: '8.3'
|
|
33
32
|
- !ruby/object:Gem::Dependency
|
|
34
33
|
name: diffy
|
|
35
34
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -44,6 +43,20 @@ dependencies:
|
|
|
44
43
|
- - ">="
|
|
45
44
|
- !ruby/object:Gem::Version
|
|
46
45
|
version: '0'
|
|
46
|
+
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: logger
|
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
requirements:
|
|
50
|
+
- - ">="
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: '0'
|
|
53
|
+
type: :runtime
|
|
54
|
+
prerelease: false
|
|
55
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
56
|
+
requirements:
|
|
57
|
+
- - ">="
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
version: '0'
|
|
47
60
|
- !ruby/object:Gem::Dependency
|
|
48
61
|
name: appraisal
|
|
49
62
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -58,6 +71,20 @@ dependencies:
|
|
|
58
71
|
- - ">="
|
|
59
72
|
- !ruby/object:Gem::Version
|
|
60
73
|
version: 2.2.0
|
|
74
|
+
- !ruby/object:Gem::Dependency
|
|
75
|
+
name: bigdecimal
|
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
|
77
|
+
requirements:
|
|
78
|
+
- - ">="
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: '0'
|
|
81
|
+
type: :development
|
|
82
|
+
prerelease: false
|
|
83
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
84
|
+
requirements:
|
|
85
|
+
- - ">="
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '0'
|
|
61
88
|
- !ruby/object:Gem::Dependency
|
|
62
89
|
name: bundler
|
|
63
90
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,14 +119,14 @@ dependencies:
|
|
|
92
119
|
requirements:
|
|
93
120
|
- - ">="
|
|
94
121
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: 0.
|
|
122
|
+
version: 0.2.0
|
|
96
123
|
type: :development
|
|
97
124
|
prerelease: false
|
|
98
125
|
version_requirements: !ruby/object:Gem::Requirement
|
|
99
126
|
requirements:
|
|
100
127
|
- - ">="
|
|
101
128
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: 0.
|
|
129
|
+
version: 0.2.0
|
|
103
130
|
- !ruby/object:Gem::Dependency
|
|
104
131
|
name: hash_order_helper
|
|
105
132
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -170,48 +197,62 @@ dependencies:
|
|
|
170
197
|
- - ">="
|
|
171
198
|
- !ruby/object:Gem::Version
|
|
172
199
|
version: 3.0.0
|
|
200
|
+
- !ruby/object:Gem::Dependency
|
|
201
|
+
name: rspec_junit_formatter
|
|
202
|
+
requirement: !ruby/object:Gem::Requirement
|
|
203
|
+
requirements:
|
|
204
|
+
- - ">="
|
|
205
|
+
- !ruby/object:Gem::Version
|
|
206
|
+
version: '0'
|
|
207
|
+
type: :development
|
|
208
|
+
prerelease: false
|
|
209
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
210
|
+
requirements:
|
|
211
|
+
- - ">="
|
|
212
|
+
- !ruby/object:Gem::Version
|
|
213
|
+
version: '0'
|
|
173
214
|
- !ruby/object:Gem::Dependency
|
|
174
215
|
name: rspec-match_fuzzy
|
|
175
216
|
requirement: !ruby/object:Gem::Requirement
|
|
176
217
|
requirements:
|
|
177
218
|
- - ">="
|
|
178
219
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: 0.
|
|
220
|
+
version: 0.2.0
|
|
180
221
|
type: :development
|
|
181
222
|
prerelease: false
|
|
182
223
|
version_requirements: !ruby/object:Gem::Requirement
|
|
183
224
|
requirements:
|
|
184
225
|
- - ">="
|
|
185
226
|
- !ruby/object:Gem::Version
|
|
186
|
-
version: 0.
|
|
227
|
+
version: 0.2.0
|
|
187
228
|
- !ruby/object:Gem::Dependency
|
|
188
229
|
name: rspec-match_ruby
|
|
189
230
|
requirement: !ruby/object:Gem::Requirement
|
|
190
231
|
requirements:
|
|
191
232
|
- - ">="
|
|
192
233
|
- !ruby/object:Gem::Version
|
|
193
|
-
version: 0.
|
|
234
|
+
version: 0.2.0
|
|
194
235
|
type: :development
|
|
195
236
|
prerelease: false
|
|
196
237
|
version_requirements: !ruby/object:Gem::Requirement
|
|
197
238
|
requirements:
|
|
198
239
|
- - ">="
|
|
199
240
|
- !ruby/object:Gem::Version
|
|
200
|
-
version: 0.
|
|
241
|
+
version: 0.2.0
|
|
201
242
|
- !ruby/object:Gem::Dependency
|
|
202
243
|
name: rubocop
|
|
203
244
|
requirement: !ruby/object:Gem::Requirement
|
|
204
245
|
requirements:
|
|
205
246
|
- - '='
|
|
206
247
|
- !ruby/object:Gem::Version
|
|
207
|
-
version: 1.
|
|
248
|
+
version: 1.85.1
|
|
208
249
|
type: :development
|
|
209
250
|
prerelease: false
|
|
210
251
|
version_requirements: !ruby/object:Gem::Requirement
|
|
211
252
|
requirements:
|
|
212
253
|
- - '='
|
|
213
254
|
- !ruby/object:Gem::Version
|
|
214
|
-
version: 1.
|
|
255
|
+
version: 1.85.1
|
|
215
256
|
- !ruby/object:Gem::Dependency
|
|
216
257
|
name: rubocop-rake
|
|
217
258
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -254,6 +295,34 @@ dependencies:
|
|
|
254
295
|
- - ">="
|
|
255
296
|
- !ruby/object:Gem::Version
|
|
256
297
|
version: '0'
|
|
298
|
+
- !ruby/object:Gem::Dependency
|
|
299
|
+
name: simplecov-cobertura
|
|
300
|
+
requirement: !ruby/object:Gem::Requirement
|
|
301
|
+
requirements:
|
|
302
|
+
- - ">="
|
|
303
|
+
- !ruby/object:Gem::Version
|
|
304
|
+
version: '0'
|
|
305
|
+
type: :development
|
|
306
|
+
prerelease: false
|
|
307
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
308
|
+
requirements:
|
|
309
|
+
- - ">="
|
|
310
|
+
- !ruby/object:Gem::Version
|
|
311
|
+
version: '0'
|
|
312
|
+
- !ruby/object:Gem::Dependency
|
|
313
|
+
name: simplecov-html
|
|
314
|
+
requirement: !ruby/object:Gem::Requirement
|
|
315
|
+
requirements:
|
|
316
|
+
- - ">="
|
|
317
|
+
- !ruby/object:Gem::Version
|
|
318
|
+
version: '0'
|
|
319
|
+
type: :development
|
|
320
|
+
prerelease: false
|
|
321
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
322
|
+
requirements:
|
|
323
|
+
- - ">="
|
|
324
|
+
- !ruby/object:Gem::Version
|
|
325
|
+
version: '0'
|
|
257
326
|
- !ruby/object:Gem::Dependency
|
|
258
327
|
name: simplecov-lcov
|
|
259
328
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -268,6 +337,20 @@ dependencies:
|
|
|
268
337
|
- - ">="
|
|
269
338
|
- !ruby/object:Gem::Version
|
|
270
339
|
version: '0'
|
|
340
|
+
- !ruby/object:Gem::Dependency
|
|
341
|
+
name: trilogy
|
|
342
|
+
requirement: !ruby/object:Gem::Requirement
|
|
343
|
+
requirements:
|
|
344
|
+
- - ">="
|
|
345
|
+
- !ruby/object:Gem::Version
|
|
346
|
+
version: '0'
|
|
347
|
+
type: :development
|
|
348
|
+
prerelease: false
|
|
349
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
350
|
+
requirements:
|
|
351
|
+
- - ">="
|
|
352
|
+
- !ruby/object:Gem::Version
|
|
353
|
+
version: '0'
|
|
271
354
|
description: Ridgepole is a tool to manage DB schema. It defines DB schema using Rails
|
|
272
355
|
DSL, and updates DB schema according to DSL.
|
|
273
356
|
email:
|
|
@@ -277,22 +360,10 @@ executables:
|
|
|
277
360
|
extensions: []
|
|
278
361
|
extra_rdoc_files: []
|
|
279
362
|
files:
|
|
280
|
-
- ".rspec"
|
|
281
|
-
- ".rubocop.yml"
|
|
282
|
-
- ".simplecov"
|
|
283
|
-
- Appraisals
|
|
284
363
|
- CHANGELOG.md
|
|
285
|
-
- Gemfile
|
|
286
364
|
- LICENSE.txt
|
|
287
365
|
- README.md
|
|
288
|
-
- Rakefile
|
|
289
366
|
- bin/ridgepole
|
|
290
|
-
- docker-compose.yml
|
|
291
|
-
- gemfiles/activerecord_5.1.gemfile
|
|
292
|
-
- gemfiles/activerecord_5.2.gemfile
|
|
293
|
-
- gemfiles/activerecord_6.0.gemfile
|
|
294
|
-
- gemfiles/activerecord_6.1.gemfile
|
|
295
|
-
- gemfiles/activerecord_7.0.gemfile
|
|
296
367
|
- lib/ridgepole.rb
|
|
297
368
|
- lib/ridgepole/cli/config.rb
|
|
298
369
|
- lib/ridgepole/client.rb
|
|
@@ -308,20 +379,19 @@ files:
|
|
|
308
379
|
- lib/ridgepole/ext/abstract_adapter/disable_table_options.rb
|
|
309
380
|
- lib/ridgepole/ext/abstract_mysql_adapter/dump_auto_increment.rb
|
|
310
381
|
- lib/ridgepole/ext/pp_sort_hash.rb
|
|
311
|
-
- lib/ridgepole/ext/schema_dumper.rb
|
|
382
|
+
- lib/ridgepole/ext/schema_dumper/disable_sort_columns.rb
|
|
383
|
+
- lib/ridgepole/ext/schema_dumper/foreign_keys.rb
|
|
312
384
|
- lib/ridgepole/external_sql_executer.rb
|
|
313
385
|
- lib/ridgepole/logger.rb
|
|
314
386
|
- lib/ridgepole/migration_ext.rb
|
|
315
387
|
- lib/ridgepole/schema_dumper_ext.rb
|
|
316
388
|
- lib/ridgepole/schema_statements_ext.rb
|
|
317
389
|
- lib/ridgepole/version.rb
|
|
318
|
-
- ridgepole.gemspec
|
|
319
390
|
homepage: https://github.com/ridgepole/ridgepole
|
|
320
391
|
licenses:
|
|
321
392
|
- MIT
|
|
322
393
|
metadata:
|
|
323
394
|
rubygems_mfa_required: 'true'
|
|
324
|
-
post_install_message:
|
|
325
395
|
rdoc_options: []
|
|
326
396
|
require_paths:
|
|
327
397
|
- lib
|
|
@@ -329,15 +399,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
329
399
|
requirements:
|
|
330
400
|
- - ">="
|
|
331
401
|
- !ruby/object:Gem::Version
|
|
332
|
-
version: 2.
|
|
402
|
+
version: '2.7'
|
|
333
403
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
334
404
|
requirements:
|
|
335
405
|
- - ">="
|
|
336
406
|
- !ruby/object:Gem::Version
|
|
337
407
|
version: '0'
|
|
338
408
|
requirements: []
|
|
339
|
-
rubygems_version:
|
|
340
|
-
signing_key:
|
|
409
|
+
rubygems_version: 4.0.3
|
|
341
410
|
specification_version: 4
|
|
342
411
|
summary: Ridgepole is a tool to manage DB schema.
|
|
343
412
|
test_files: []
|
data/.rspec
DELETED
data/.rubocop.yml
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
AllCops:
|
|
2
|
-
Exclude:
|
|
3
|
-
- "gemfiles/**/*"
|
|
4
|
-
- "omnibus-ridgepole/**/*"
|
|
5
|
-
- "vendor/bundle/**/*"
|
|
6
|
-
TargetRubyVersion: 2.5
|
|
7
|
-
NewCops: enable
|
|
8
|
-
Bundler/OrderedGems:
|
|
9
|
-
Include:
|
|
10
|
-
- "Appraisals"
|
|
11
|
-
Layout/HeredocIndentation:
|
|
12
|
-
Enabled: false
|
|
13
|
-
Metrics/AbcSize:
|
|
14
|
-
Enabled: false
|
|
15
|
-
Metrics/BlockLength:
|
|
16
|
-
Enabled: false
|
|
17
|
-
Metrics/BlockNesting:
|
|
18
|
-
Enabled: false
|
|
19
|
-
Metrics/ClassLength:
|
|
20
|
-
Enabled: false
|
|
21
|
-
Metrics/CyclomaticComplexity:
|
|
22
|
-
Enabled: false
|
|
23
|
-
Layout/LineLength:
|
|
24
|
-
Enabled: false
|
|
25
|
-
Metrics/MethodLength:
|
|
26
|
-
Enabled: false
|
|
27
|
-
Metrics/ParameterLists:
|
|
28
|
-
Enabled: false
|
|
29
|
-
Metrics/PerceivedComplexity:
|
|
30
|
-
Enabled: false
|
|
31
|
-
Style/Documentation:
|
|
32
|
-
Enabled: false
|
|
33
|
-
Style/GuardClause:
|
|
34
|
-
Enabled: false
|
|
35
|
-
Style/MixinUsage:
|
|
36
|
-
Exclude:
|
|
37
|
-
- "spec/**/*"
|
|
38
|
-
Style/TrailingCommaInHashLiteral:
|
|
39
|
-
EnforcedStyleForMultiline: consistent_comma
|
|
40
|
-
Layout/ClosingHeredocIndentation:
|
|
41
|
-
Enabled: false
|
|
42
|
-
Style/NumericPredicate:
|
|
43
|
-
Enabled: false
|
|
44
|
-
Lint/MissingSuper:
|
|
45
|
-
Enabled: false
|
|
46
|
-
Style/StringConcatenation:
|
|
47
|
-
Enabled: false
|
|
48
|
-
Style/SoleNestedConditional:
|
|
49
|
-
Enabled: false
|
|
50
|
-
Lint/DuplicateBranch:
|
|
51
|
-
Enabled: false
|
|
52
|
-
Style/OptionalBooleanParameter:
|
|
53
|
-
Enabled: false
|
data/.simplecov
DELETED
data/Appraisals
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
appraise 'activerecord-5.1' do
|
|
4
|
-
gem 'activerecord', '~> 5.1.0'
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
appraise 'activerecord-5.2' do
|
|
8
|
-
gem 'activerecord', '~> 5.2.0'
|
|
9
|
-
gem 'mysql2', '~> 0.4.4'
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
appraise 'activerecord-6.0' do
|
|
13
|
-
gem 'activerecord', '~> 6.0.0'
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
appraise 'activerecord-6.1' do
|
|
17
|
-
gem 'activerecord', '~> 6.1.0'
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
appraise 'activerecord-7.0' do
|
|
21
|
-
gem 'activerecord', '~> 7.0.0'
|
|
22
|
-
end
|
data/Gemfile
DELETED
data/Rakefile
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'bundler/gem_tasks'
|
|
4
|
-
require 'rspec/core/rake_task'
|
|
5
|
-
require 'rubocop/rake_task'
|
|
6
|
-
|
|
7
|
-
RSpec::Core::RakeTask.new('spec')
|
|
8
|
-
|
|
9
|
-
RuboCop::RakeTask.new do |task|
|
|
10
|
-
task.options = %w[-c .rubocop.yml]
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
task default: %i[rubocop spec]
|
data/docker-compose.yml
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
version: "3.8"
|
|
2
|
-
services:
|
|
3
|
-
mysql:
|
|
4
|
-
image: "mysql:5.6"
|
|
5
|
-
ports:
|
|
6
|
-
- "13316:3306"
|
|
7
|
-
environment:
|
|
8
|
-
MYSQL_ROOT_PASSWORD: password
|
|
9
|
-
mysql57:
|
|
10
|
-
image: "mysql:5.7"
|
|
11
|
-
ports:
|
|
12
|
-
- "13317:3306"
|
|
13
|
-
environment:
|
|
14
|
-
MYSQL_ROOT_PASSWORD: password
|
|
15
|
-
mysql80:
|
|
16
|
-
image: "mysql:8.0"
|
|
17
|
-
ports:
|
|
18
|
-
- "13318:3306"
|
|
19
|
-
environment:
|
|
20
|
-
MYSQL_ROOT_PASSWORD: password
|
|
21
|
-
postgres:
|
|
22
|
-
image: "postgres:14"
|
|
23
|
-
ports:
|
|
24
|
-
- "15442:5432"
|
|
25
|
-
environment:
|
|
26
|
-
POSTGRES_PASSWORD: password
|