ridgepole 0.9.5 → 1.0.2.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -1
  3. data/.simplecov +1 -1
  4. data/Appraisals +4 -0
  5. data/CHANGELOG.md +251 -0
  6. data/README.md +45 -153
  7. data/bin/ridgepole +83 -85
  8. data/docker-compose.yml +26 -18
  9. data/gemfiles/activerecord_7.0.gemfile +7 -0
  10. data/lib/ridgepole/client.rb +5 -0
  11. data/lib/ridgepole/delta.rb +23 -1
  12. data/lib/ridgepole/diff.rb +57 -3
  13. data/lib/ridgepole/dsl_parser/context.rb +16 -0
  14. data/lib/ridgepole/execute_expander.rb +4 -1
  15. data/lib/ridgepole/ext/abstract_adapter/partition_definition.rb +19 -0
  16. data/lib/ridgepole/ext/abstract_adapter/partition_options.rb +34 -0
  17. data/lib/ridgepole/ext/abstract_adapter/partitioning.rb +40 -0
  18. data/lib/ridgepole/ext/abstract_mysql_adapter/partitioning.rb +71 -0
  19. data/lib/ridgepole/ext/abstract_mysql_adapter/schema_creation.rb +46 -0
  20. data/lib/ridgepole/ext/postgresql_adapter/partitioning.rb +126 -0
  21. data/lib/ridgepole/ext/schema_dumper.rb +24 -0
  22. data/lib/ridgepole/external_sql_executer.rb +11 -13
  23. data/lib/ridgepole/version.rb +1 -1
  24. data/lib/ridgepole.rb +3 -0
  25. data/ridgepole.gemspec +9 -5
  26. metadata +22 -289
  27. data/.github/workflows/test.yml +0 -70
  28. data/.gitignore +0 -25
  29. data/spec/cli_helper.rb +0 -65
  30. data/spec/dsl_parser/context_spec.rb +0 -16
  31. data/spec/erb_helper.rb +0 -26
  32. data/spec/fixtures/for_require_relative_spec.rb +0 -3
  33. data/spec/hide_pending_formatter.rb +0 -9
  34. data/spec/mysql/_migrate/migrate_change_table_option_spec.rb +0 -40
  35. data/spec/mysql/bigint_pk/int_pk_spec.rb +0 -47
  36. data/spec/mysql/cli/config_spec.rb +0 -210
  37. data/spec/mysql/cli/ridgepole_spec.rb +0 -447
  38. data/spec/mysql/collation/collation_spec.rb +0 -153
  39. data/spec/mysql/comment/comment_spec.rb +0 -179
  40. data/spec/mysql/default_lambda/default_lambda_spec.rb +0 -164
  41. data/spec/mysql/diff/diff2_spec.rb +0 -189
  42. data/spec/mysql/diff/diff_spec.rb +0 -168
  43. data/spec/mysql/dump/dump_class_method_spec.rb +0 -74
  44. data/spec/mysql/dump/dump_some_tables_spec.rb +0 -70
  45. data/spec/mysql/dump/dump_spec.rb +0 -74
  46. data/spec/mysql/dump/dump_unknown_column_type_spec.rb +0 -28
  47. data/spec/mysql/dump/dump_without_table_options_spec.rb +0 -34
  48. data/spec/mysql/fk/migrate_change_fk2_spec.rb +0 -47
  49. data/spec/mysql/fk/migrate_change_fk_spec.rb +0 -265
  50. data/spec/mysql/fk/migrate_create_fk_spec.rb +0 -349
  51. data/spec/mysql/fk/migrate_drop_fk_spec.rb +0 -331
  52. data/spec/mysql/fk/migrate_fk_with_column_spec.rb +0 -163
  53. data/spec/mysql/fk/migrate_ignore_fk_spec.rb +0 -70
  54. data/spec/mysql/migrate/check_orphan_index_spec.rb +0 -83
  55. data/spec/mysql/migrate/migrate_add_column2_spec.rb +0 -159
  56. data/spec/mysql/migrate/migrate_add_column_order_spec.rb +0 -242
  57. data/spec/mysql/migrate/migrate_add_column_spec.rb +0 -161
  58. data/spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb +0 -276
  59. data/spec/mysql/migrate/migrate_add_column_with_script_spec.rb +0 -152
  60. data/spec/mysql/migrate/migrate_change_column2_spec.rb +0 -91
  61. data/spec/mysql/migrate/migrate_change_column3_spec.rb +0 -404
  62. data/spec/mysql/migrate/migrate_change_column4_spec.rb +0 -83
  63. data/spec/mysql/migrate/migrate_change_column5_spec.rb +0 -129
  64. data/spec/mysql/migrate/migrate_change_column6_spec.rb +0 -241
  65. data/spec/mysql/migrate/migrate_change_column7_spec.rb +0 -34
  66. data/spec/mysql/migrate/migrate_change_column8_spec.rb +0 -87
  67. data/spec/mysql/migrate/migrate_change_column_default_spec.rb +0 -199
  68. data/spec/mysql/migrate/migrate_change_column_float_spec.rb +0 -75
  69. data/spec/mysql/migrate/migrate_change_column_spec.rb +0 -158
  70. data/spec/mysql/migrate/migrate_change_index2_spec.rb +0 -86
  71. data/spec/mysql/migrate/migrate_change_index3_spec.rb +0 -179
  72. data/spec/mysql/migrate/migrate_change_index4_spec.rb +0 -112
  73. data/spec/mysql/migrate/migrate_change_index5_spec.rb +0 -74
  74. data/spec/mysql/migrate/migrate_change_index6_spec.rb +0 -202
  75. data/spec/mysql/migrate/migrate_change_index7_spec.rb +0 -85
  76. data/spec/mysql/migrate/migrate_change_index8_spec.rb +0 -85
  77. data/spec/mysql/migrate/migrate_change_index_spec.rb +0 -235
  78. data/spec/mysql/migrate/migrate_change_table_comment_spec.rb +0 -72
  79. data/spec/mysql/migrate/migrate_change_table_option_spec.rb +0 -83
  80. data/spec/mysql/migrate/migrate_check_relation_column_type_spec.rb +0 -225
  81. data/spec/mysql/migrate/migrate_create_index2_spec.rb +0 -203
  82. data/spec/mysql/migrate/migrate_create_index_spec.rb +0 -220
  83. data/spec/mysql/migrate/migrate_create_table_spec.rb +0 -123
  84. data/spec/mysql/migrate/migrate_create_table_with_ignore_spec.rb +0 -45
  85. data/spec/mysql/migrate/migrate_create_table_with_index_spec.rb +0 -43
  86. data/spec/mysql/migrate/migrate_create_table_with_options_spec.rb +0 -59
  87. data/spec/mysql/migrate/migrate_create_table_with_script_spec.rb +0 -132
  88. data/spec/mysql/migrate/migrate_drop_column_and_index2_spec.rb +0 -140
  89. data/spec/mysql/migrate/migrate_drop_column_and_index_spec.rb +0 -167
  90. data/spec/mysql/migrate/migrate_drop_column_and_unique_index_spec.rb +0 -52
  91. data/spec/mysql/migrate/migrate_drop_column_spec.rb +0 -158
  92. data/spec/mysql/migrate/migrate_drop_index_spec.rb +0 -160
  93. data/spec/mysql/migrate/migrate_drop_table_spec.rb +0 -123
  94. data/spec/mysql/migrate/migrate_duplicate_index_spec.rb +0 -27
  95. data/spec/mysql/migrate/migrate_duplicate_table_spec.rb +0 -37
  96. data/spec/mysql/migrate/migrate_empty_spec.rb +0 -78
  97. data/spec/mysql/migrate/migrate_execute_spec.rb +0 -288
  98. data/spec/mysql/migrate/migrate_ignore_column_spec.rb +0 -98
  99. data/spec/mysql/migrate/migrate_ignore_index_spec.rb +0 -92
  100. data/spec/mysql/migrate/migrate_log_file_spec.rb +0 -125
  101. data/spec/mysql/migrate/migrate_merge_mode_spec.rb +0 -145
  102. data/spec/mysql/migrate/migrate_noop_spec.rb +0 -234
  103. data/spec/mysql/migrate/migrate_primary_key_spec.rb +0 -104
  104. data/spec/mysql/migrate/migrate_rename_column_spec.rb +0 -184
  105. data/spec/mysql/migrate/migrate_rename_table_spec.rb +0 -241
  106. data/spec/mysql/migrate/migrate_same_default_null_spec.rb +0 -77
  107. data/spec/mysql/migrate/migrate_same_spec.rb +0 -82
  108. data/spec/mysql/migrate/migrate_script_error_spec.rb +0 -91
  109. data/spec/mysql/migrate/migrate_skip_column_comment_change_spec.rb +0 -39
  110. data/spec/mysql/migrate/migrate_skip_drop_table_spec.rb +0 -145
  111. data/spec/mysql/migrate/migrate_skip_rename_column_spec.rb +0 -140
  112. data/spec/mysql/migrate/migrate_skip_rename_table_spec.rb +0 -141
  113. data/spec/mysql/migrate/migrate_with_ignore_tables_spec.rb +0 -307
  114. data/spec/mysql/migrate/migrate_with_pre_post_query_spec.rb +0 -153
  115. data/spec/mysql/migrate/migrate_with_tables_spec.rb +0 -149
  116. data/spec/mysql/migrate/migrate_with_verbose_log_spec.rb +0 -60
  117. data/spec/mysql/ridgepole_test_database.sql +0 -2
  118. data/spec/mysql/ridgepole_test_tables.sql +0 -79
  119. data/spec/mysql/ridgepole_test_tables_unknown_column_type.sql +0 -17
  120. data/spec/mysql/text_blob_types/text_blob_types_spec.rb +0 -131
  121. data/spec/mysql/~default_name_fk/migrate_change_fk_spec.rb +0 -59
  122. data/spec/mysql/~default_name_fk/migrate_create_fk_spec.rb +0 -133
  123. data/spec/mysql/~default_name_fk/migrate_drop_fk_spec.rb +0 -100
  124. data/spec/mysql/~dump_auto_increment/migrate_create_table_with_index_spec.rb +0 -43
  125. data/spec/mysql57/json/add_json_column_spec.rb +0 -35
  126. data/spec/mysql57/json/change_json_column_spec.rb +0 -102
  127. data/spec/mysql57/json/drop_json_column_spec.rb +0 -35
  128. data/spec/mysql57/virtual/add_virtual_column_spec.rb +0 -37
  129. data/spec/mysql57/virtual/change_virtual_column_spec.rb +0 -40
  130. data/spec/mysql57/virtual/drop_virtual_column_spec.rb +0 -37
  131. data/spec/postgresql/diff/diff_spec.rb +0 -216
  132. data/spec/postgresql/dump/dump_spec.rb +0 -69
  133. data/spec/postgresql/fk/migrate_change_fk_spec.rb +0 -115
  134. data/spec/postgresql/fk/migrate_create_fk_spec.rb +0 -176
  135. data/spec/postgresql/fk/migrate_drop_fk_spec.rb +0 -197
  136. data/spec/postgresql/migrate/migrate_add_column_spec.rb +0 -203
  137. data/spec/postgresql/migrate/migrate_add_expression_index_spec.rb +0 -25
  138. data/spec/postgresql/migrate/migrate_bigint_spec.rb +0 -53
  139. data/spec/postgresql/migrate/migrate_change_column_default_spec.rb +0 -38
  140. data/spec/postgresql/migrate/migrate_change_column_spec.rb +0 -185
  141. data/spec/postgresql/migrate/migrate_change_index_spec.rb +0 -164
  142. data/spec/postgresql/migrate/migrate_check_relation_column_type_spec.rb +0 -114
  143. data/spec/postgresql/migrate/migrate_create_table_spec.rb +0 -120
  144. data/spec/postgresql/migrate/migrate_create_table_with_default_proc_spec.rb +0 -112
  145. data/spec/postgresql/migrate/migrate_drop_column_spec.rb +0 -163
  146. data/spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb +0 -166
  147. data/spec/postgresql/migrate/migrate_drop_expression_index_spec.rb +0 -59
  148. data/spec/postgresql/migrate/migrate_drop_index_spec.rb +0 -158
  149. data/spec/postgresql/migrate/migrate_drop_table_spec.rb +0 -122
  150. data/spec/postgresql/migrate/migrate_ext_cols_spec.rb +0 -64
  151. data/spec/postgresql/migrate/migrate_primary_key2_spec.rb +0 -73
  152. data/spec/postgresql/migrate/migrate_primary_key_spec.rb +0 -99
  153. data/spec/postgresql/migrate/migrate_references_spec.rb +0 -90
  154. data/spec/postgresql/migrate/migrate_rename_column_spec.rb +0 -155
  155. data/spec/postgresql/migrate/migrate_rename_table_spec.rb +0 -175
  156. data/spec/postgresql/migrate/migrate_same_spec.rb +0 -77
  157. data/spec/postgresql/ridgepole_test_database.sql +0 -16
  158. data/spec/postgresql/ridgepole_test_tables.sql +0 -75
  159. data/spec/postgresql/~default_name_fk/migrate_change_fk_spec.rb +0 -59
  160. data/spec/postgresql/~default_name_fk/migrate_create_fk_spec.rb +0 -134
  161. data/spec/postgresql/~default_name_fk/migrate_drop_fk_spec.rb +0 -100
  162. data/spec/processing_for_ci.rb +0 -13
  163. data/spec/spec_condition.rb +0 -58
  164. data/spec/spec_const.rb +0 -20
  165. data/spec/spec_helper.rb +0 -173
@@ -0,0 +1,126 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_record/connection_adapters/postgresql_adapter'
4
+
5
+ module Ridgepole
6
+ module Ext
7
+ module PostgreSQLAdapter
8
+ module Partitioning
9
+ def supports_partitions?
10
+ ActiveRecord::VERSION::MAJOR >= 6 && postgresql_version >= 100_000 # >= 10.0
11
+ end
12
+
13
+ def table_options(table_name)
14
+ options = partition_options(table_name)
15
+ if options
16
+ (super || {}).merge(options: "PARTITION BY #{options[:type].to_s.upcase}(#{options[:columns].join(',')})")
17
+ else
18
+ super
19
+ end
20
+ end
21
+
22
+ def partition_options(table_name)
23
+ return unless supports_partitions?
24
+
25
+ scope = quoted_scope(table_name)
26
+ result = query_value(<<~SQL, 'SCHEMA')
27
+ SELECT pg_get_partkeydef(t.oid)
28
+ FROM pg_class t
29
+ LEFT JOIN pg_namespace n ON n.oid = t.relnamespace
30
+ WHERE t.relname = #{scope[:name]}
31
+ AND n.nspname = #{scope[:schema]}
32
+ SQL
33
+ return unless result
34
+
35
+ type, *columns = result.scan(/\w+/).map { |value| value.downcase.to_sym }
36
+ { type: type, columns: columns }
37
+ end
38
+
39
+ def partition(table_name)
40
+ options = partition_options(table_name)
41
+ return unless options
42
+
43
+ scope = quoted_scope(table_name)
44
+ partition_info = query(<<~SQL, 'SCHEMA')
45
+ SELECT p.relname, pg_get_expr(p.relpartbound, p.oid, true)
46
+ FROM pg_class t
47
+ JOIN pg_inherits i on i.inhparent = t.oid
48
+ JOIN pg_class p on p.oid = i.inhrelid
49
+ WHERE t.relname = #{scope[:name]}
50
+ AND p.relnamespace::regnamespace::text = #{scope[:schema]}
51
+ ORDER BY p.relname
52
+ SQL
53
+
54
+ partition_definitions = partition_info.map do |row|
55
+ values = case options[:type]
56
+ when :list
57
+ values = row[1].match(/FOR VALUES IN \((?<csv>.+)\)$/)[:csv].split(',').map(&:strip).map { |value| cast_value(value) }
58
+ { in: Array.wrap(values) }
59
+ when :range
60
+ match = row[1].match(/FOR VALUES FROM \((?<from>.+)\) TO \((?<to>.+)\)/)
61
+ from = match[:from].split(',').map(&:strip).map { |value| cast_value(value) }
62
+ to = match[:to].split(',').map(&:strip).map { |value| cast_value(value) }
63
+ { from: from, to: to }
64
+ else
65
+ raise NotImplementedError
66
+ end
67
+ { name: row[0], values: values }
68
+ end
69
+
70
+ ActiveRecord::ConnectionAdapters::PartitionOptions.new(table_name, options[:type], options[:columns], partition_definitions: partition_definitions)
71
+ end
72
+
73
+ def cast_value(value)
74
+ Integer(value)
75
+ rescue ArgumentError
76
+ value.delete(%q("')) # "
77
+ end
78
+
79
+ def quote_value(value)
80
+ if %w[MINVALUE MAXVALUE].include?(value)
81
+ value
82
+ else
83
+ quote(value)
84
+ end
85
+ end
86
+
87
+ def partition_tables
88
+ partition_info = query(<<~SQL, 'SCHEMA')
89
+ SELECT p.relname
90
+ FROM pg_class t
91
+ JOIN pg_inherits i on i.inhparent = t.oid
92
+ JOIN pg_class p on p.oid = i.inhrelid
93
+ ORDER BY p.relname
94
+ SQL
95
+ partition_info.map { |row| row[0] }
96
+ end
97
+
98
+ # SchemaStatements
99
+ def add_partition(table_name, name:, values:)
100
+ condition = if values.key?(:in)
101
+ "FOR VALUES IN (#{values[:in].map { |v| quote_value(v) }.join(',')})"
102
+ elsif values.key?(:to)
103
+ from = values[:from].map { |v| quote_value(v) }.join(',')
104
+ to = values[:to].map { |v| quote_value(v) }.join(',')
105
+ "FOR VALUES FROM (#{from}) TO (#{to})"
106
+ else
107
+ raise NotImplementedError
108
+ end
109
+ create_table(name, id: false, options: "PARTITION OF #{table_name} #{condition}")
110
+ end
111
+
112
+ def remove_partition(_table_name, name:)
113
+ drop_table(name)
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
119
+
120
+ module ActiveRecord
121
+ module ConnectionAdapters
122
+ class PostgreSQLAdapter
123
+ prepend Ridgepole::Ext::PostgreSQLAdapter::Partitioning
124
+ end
125
+ end
126
+ end
@@ -45,6 +45,30 @@ module Ridgepole
45
45
  stream.puts add_foreign_key_statements.sort.join("\n")
46
46
  end
47
47
  end
48
+
49
+ def tables(stream)
50
+ original = ignore_tables.dup
51
+ ignore_tables.concat(@connection.partition_tables)
52
+ super
53
+ ensure
54
+ self.ignore_tables = original
55
+ end
56
+
57
+ def table(table, stream)
58
+ super
59
+ partition(table, stream)
60
+ end
61
+
62
+ def partition(table, stream)
63
+ if (partition = @connection.partition(table))
64
+ partition_definitions = partition.partition_definitions.map do |partition_definition|
65
+ "{ name: #{partition_definition.name.inspect}, values: #{partition_definition.values} }"
66
+ end.join(' ,')
67
+
68
+ stream.puts " add_partition #{partition.table.inspect}, #{partition.type.inspect}, #{partition.columns.inspect}, partition_definitions: [#{partition_definitions}]"
69
+ stream.puts
70
+ end
71
+ end
48
72
  end
49
73
  end
50
74
  end
@@ -25,20 +25,18 @@ module Ridgepole
25
25
  readable = ready[0]
26
26
 
27
27
  readable.each do |f|
28
- begin
29
- data = f.read_nonblock(1024)
30
- next if data.nil?
31
-
32
- data.chomp!
33
-
34
- if f == stderr
35
- @logger.warn("[WARNING] #{script_basename}: #{data}")
36
- else
37
- @logger.info("#{script_basename}: #{data}")
38
- end
39
- rescue EOFError
40
- files.delete f
28
+ data = f.read_nonblock(1024)
29
+ next if data.nil?
30
+
31
+ data.chomp!
32
+
33
+ if f == stderr
34
+ @logger.warn("[WARNING] #{script_basename}: #{data}")
35
+ else
36
+ @logger.info("#{script_basename}: #{data}")
41
37
  end
38
+ rescue EOFError
39
+ files.delete f
42
40
  end
43
41
  end
44
42
  rescue EOFError
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ridgepole
4
- VERSION = '0.9.5'
4
+ VERSION = '1.0.2.beta'
5
5
  end
data/lib/ridgepole.rb CHANGED
@@ -16,6 +16,9 @@ require 'diffy'
16
16
  module Ridgepole; end
17
17
 
18
18
  require 'ridgepole/ext/abstract_adapter/disable_table_options'
19
+ require 'ridgepole/ext/abstract_adapter/partition_definition'
20
+ require 'ridgepole/ext/abstract_adapter/partition_options'
21
+ require 'ridgepole/ext/abstract_adapter/partitioning'
19
22
  require 'ridgepole/ext/pp_sort_hash'
20
23
  require 'ridgepole/ext/schema_dumper'
21
24
  require 'ridgepole/client'
data/ridgepole.gemspec CHANGED
@@ -14,19 +14,22 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = 'https://github.com/ridgepole/ridgepole'
15
15
  spec.license = 'MIT'
16
16
 
17
- spec.files = `git ls-files -z`.split("\x0")
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
18
22
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
23
  spec.require_paths = ['lib']
21
24
 
22
25
  spec.required_ruby_version = Gem::Requirement.new('>= 2.2.7') # rubocop:disable Gemspec/RequiredRubyVersion
23
26
 
24
- spec.add_dependency 'activerecord', '>= 5.1', '< 6.2'
27
+ spec.add_dependency 'activerecord', '>= 5.1', '< 7.1'
25
28
  spec.add_dependency 'diffy'
26
29
 
27
30
  spec.add_development_dependency 'appraisal', '>= 2.2.0'
28
31
  spec.add_development_dependency 'bundler'
29
- spec.add_development_dependency 'erbh', '>= 0.1.2'
32
+ spec.add_development_dependency 'erbh', '>= 0.2.1'
30
33
  spec.add_development_dependency 'hash_modern_inspect', '>= 0.1.1'
31
34
  spec.add_development_dependency 'hash_order_helper', '>= 0.1.6'
32
35
  spec.add_development_dependency 'mysql2'
@@ -35,9 +38,10 @@ Gem::Specification.new do |spec|
35
38
  spec.add_development_dependency 'rspec', '>= 3.0.0'
36
39
  spec.add_development_dependency 'rspec-match_fuzzy', '>= 0.1.3'
37
40
  spec.add_development_dependency 'rspec-match_ruby', '>= 0.1.3'
38
- spec.add_development_dependency 'rubocop', '1.9.1'
41
+ spec.add_development_dependency 'rubocop', '1.24.1'
39
42
  spec.add_development_dependency 'rubocop-rake', '>= 0.5.1'
40
43
  spec.add_development_dependency 'rubocop-rspec', '>= 2.1.0'
41
44
  spec.add_development_dependency 'simplecov'
42
45
  spec.add_development_dependency 'simplecov-lcov'
46
+ spec.metadata['rubygems_mfa_required'] = 'true'
43
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 1.0.2.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-07 00:00:00.000000000 Z
11
+ date: 2022-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5.1'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.2'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5.1'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.2'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: diffy
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -78,14 +78,14 @@ dependencies:
78
78
  requirements:
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: 0.1.2
81
+ version: 0.2.1
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: 0.1.2
88
+ version: 0.2.1
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: hash_modern_inspect
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -204,14 +204,14 @@ dependencies:
204
204
  requirements:
205
205
  - - '='
206
206
  - !ruby/object:Gem::Version
207
- version: 1.9.1
207
+ version: 1.24.1
208
208
  type: :development
209
209
  prerelease: false
210
210
  version_requirements: !ruby/object:Gem::Requirement
211
211
  requirements:
212
212
  - - '='
213
213
  - !ruby/object:Gem::Version
214
- version: 1.9.1
214
+ version: 1.24.1
215
215
  - !ruby/object:Gem::Dependency
216
216
  name: rubocop-rake
217
217
  requirement: !ruby/object:Gem::Requirement
@@ -277,12 +277,11 @@ executables:
277
277
  extensions: []
278
278
  extra_rdoc_files: []
279
279
  files:
280
- - ".github/workflows/test.yml"
281
- - ".gitignore"
282
280
  - ".rspec"
283
281
  - ".rubocop.yml"
284
282
  - ".simplecov"
285
283
  - Appraisals
284
+ - CHANGELOG.md
286
285
  - Gemfile
287
286
  - LICENSE.txt
288
287
  - README.md
@@ -293,6 +292,7 @@ files:
293
292
  - gemfiles/activerecord_5.2.gemfile
294
293
  - gemfiles/activerecord_6.0.gemfile
295
294
  - gemfiles/activerecord_6.1.gemfile
295
+ - gemfiles/activerecord_7.0.gemfile
296
296
  - lib/ridgepole.rb
297
297
  - lib/ridgepole/cli/config.rb
298
298
  - lib/ridgepole/client.rb
@@ -306,7 +306,13 @@ files:
306
306
  - lib/ridgepole/dumper.rb
307
307
  - lib/ridgepole/execute_expander.rb
308
308
  - lib/ridgepole/ext/abstract_adapter/disable_table_options.rb
309
+ - lib/ridgepole/ext/abstract_adapter/partition_definition.rb
310
+ - lib/ridgepole/ext/abstract_adapter/partition_options.rb
311
+ - lib/ridgepole/ext/abstract_adapter/partitioning.rb
309
312
  - lib/ridgepole/ext/abstract_mysql_adapter/dump_auto_increment.rb
313
+ - lib/ridgepole/ext/abstract_mysql_adapter/partitioning.rb
314
+ - lib/ridgepole/ext/abstract_mysql_adapter/schema_creation.rb
315
+ - lib/ridgepole/ext/postgresql_adapter/partitioning.rb
310
316
  - lib/ridgepole/ext/pp_sort_hash.rb
311
317
  - lib/ridgepole/ext/schema_dumper.rb
312
318
  - lib/ridgepole/external_sql_executer.rb
@@ -316,147 +322,11 @@ files:
316
322
  - lib/ridgepole/schema_statements_ext.rb
317
323
  - lib/ridgepole/version.rb
318
324
  - ridgepole.gemspec
319
- - spec/cli_helper.rb
320
- - spec/dsl_parser/context_spec.rb
321
- - spec/erb_helper.rb
322
- - spec/fixtures/for_require_relative_spec.rb
323
- - spec/hide_pending_formatter.rb
324
- - spec/mysql/_migrate/migrate_change_table_option_spec.rb
325
- - spec/mysql/bigint_pk/int_pk_spec.rb
326
- - spec/mysql/cli/config_spec.rb
327
- - spec/mysql/cli/ridgepole_spec.rb
328
- - spec/mysql/collation/collation_spec.rb
329
- - spec/mysql/comment/comment_spec.rb
330
- - spec/mysql/default_lambda/default_lambda_spec.rb
331
- - spec/mysql/diff/diff2_spec.rb
332
- - spec/mysql/diff/diff_spec.rb
333
- - spec/mysql/dump/dump_class_method_spec.rb
334
- - spec/mysql/dump/dump_some_tables_spec.rb
335
- - spec/mysql/dump/dump_spec.rb
336
- - spec/mysql/dump/dump_unknown_column_type_spec.rb
337
- - spec/mysql/dump/dump_without_table_options_spec.rb
338
- - spec/mysql/fk/migrate_change_fk2_spec.rb
339
- - spec/mysql/fk/migrate_change_fk_spec.rb
340
- - spec/mysql/fk/migrate_create_fk_spec.rb
341
- - spec/mysql/fk/migrate_drop_fk_spec.rb
342
- - spec/mysql/fk/migrate_fk_with_column_spec.rb
343
- - spec/mysql/fk/migrate_ignore_fk_spec.rb
344
- - spec/mysql/migrate/check_orphan_index_spec.rb
345
- - spec/mysql/migrate/migrate_add_column2_spec.rb
346
- - spec/mysql/migrate/migrate_add_column_order_spec.rb
347
- - spec/mysql/migrate/migrate_add_column_spec.rb
348
- - spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb
349
- - spec/mysql/migrate/migrate_add_column_with_script_spec.rb
350
- - spec/mysql/migrate/migrate_change_column2_spec.rb
351
- - spec/mysql/migrate/migrate_change_column3_spec.rb
352
- - spec/mysql/migrate/migrate_change_column4_spec.rb
353
- - spec/mysql/migrate/migrate_change_column5_spec.rb
354
- - spec/mysql/migrate/migrate_change_column6_spec.rb
355
- - spec/mysql/migrate/migrate_change_column7_spec.rb
356
- - spec/mysql/migrate/migrate_change_column8_spec.rb
357
- - spec/mysql/migrate/migrate_change_column_default_spec.rb
358
- - spec/mysql/migrate/migrate_change_column_float_spec.rb
359
- - spec/mysql/migrate/migrate_change_column_spec.rb
360
- - spec/mysql/migrate/migrate_change_index2_spec.rb
361
- - spec/mysql/migrate/migrate_change_index3_spec.rb
362
- - spec/mysql/migrate/migrate_change_index4_spec.rb
363
- - spec/mysql/migrate/migrate_change_index5_spec.rb
364
- - spec/mysql/migrate/migrate_change_index6_spec.rb
365
- - spec/mysql/migrate/migrate_change_index7_spec.rb
366
- - spec/mysql/migrate/migrate_change_index8_spec.rb
367
- - spec/mysql/migrate/migrate_change_index_spec.rb
368
- - spec/mysql/migrate/migrate_change_table_comment_spec.rb
369
- - spec/mysql/migrate/migrate_change_table_option_spec.rb
370
- - spec/mysql/migrate/migrate_check_relation_column_type_spec.rb
371
- - spec/mysql/migrate/migrate_create_index2_spec.rb
372
- - spec/mysql/migrate/migrate_create_index_spec.rb
373
- - spec/mysql/migrate/migrate_create_table_spec.rb
374
- - spec/mysql/migrate/migrate_create_table_with_ignore_spec.rb
375
- - spec/mysql/migrate/migrate_create_table_with_index_spec.rb
376
- - spec/mysql/migrate/migrate_create_table_with_options_spec.rb
377
- - spec/mysql/migrate/migrate_create_table_with_script_spec.rb
378
- - spec/mysql/migrate/migrate_drop_column_and_index2_spec.rb
379
- - spec/mysql/migrate/migrate_drop_column_and_index_spec.rb
380
- - spec/mysql/migrate/migrate_drop_column_and_unique_index_spec.rb
381
- - spec/mysql/migrate/migrate_drop_column_spec.rb
382
- - spec/mysql/migrate/migrate_drop_index_spec.rb
383
- - spec/mysql/migrate/migrate_drop_table_spec.rb
384
- - spec/mysql/migrate/migrate_duplicate_index_spec.rb
385
- - spec/mysql/migrate/migrate_duplicate_table_spec.rb
386
- - spec/mysql/migrate/migrate_empty_spec.rb
387
- - spec/mysql/migrate/migrate_execute_spec.rb
388
- - spec/mysql/migrate/migrate_ignore_column_spec.rb
389
- - spec/mysql/migrate/migrate_ignore_index_spec.rb
390
- - spec/mysql/migrate/migrate_log_file_spec.rb
391
- - spec/mysql/migrate/migrate_merge_mode_spec.rb
392
- - spec/mysql/migrate/migrate_noop_spec.rb
393
- - spec/mysql/migrate/migrate_primary_key_spec.rb
394
- - spec/mysql/migrate/migrate_rename_column_spec.rb
395
- - spec/mysql/migrate/migrate_rename_table_spec.rb
396
- - spec/mysql/migrate/migrate_same_default_null_spec.rb
397
- - spec/mysql/migrate/migrate_same_spec.rb
398
- - spec/mysql/migrate/migrate_script_error_spec.rb
399
- - spec/mysql/migrate/migrate_skip_column_comment_change_spec.rb
400
- - spec/mysql/migrate/migrate_skip_drop_table_spec.rb
401
- - spec/mysql/migrate/migrate_skip_rename_column_spec.rb
402
- - spec/mysql/migrate/migrate_skip_rename_table_spec.rb
403
- - spec/mysql/migrate/migrate_with_ignore_tables_spec.rb
404
- - spec/mysql/migrate/migrate_with_pre_post_query_spec.rb
405
- - spec/mysql/migrate/migrate_with_tables_spec.rb
406
- - spec/mysql/migrate/migrate_with_verbose_log_spec.rb
407
- - spec/mysql/ridgepole_test_database.sql
408
- - spec/mysql/ridgepole_test_tables.sql
409
- - spec/mysql/ridgepole_test_tables_unknown_column_type.sql
410
- - spec/mysql/text_blob_types/text_blob_types_spec.rb
411
- - spec/mysql/~default_name_fk/migrate_change_fk_spec.rb
412
- - spec/mysql/~default_name_fk/migrate_create_fk_spec.rb
413
- - spec/mysql/~default_name_fk/migrate_drop_fk_spec.rb
414
- - spec/mysql/~dump_auto_increment/migrate_create_table_with_index_spec.rb
415
- - spec/mysql57/json/add_json_column_spec.rb
416
- - spec/mysql57/json/change_json_column_spec.rb
417
- - spec/mysql57/json/drop_json_column_spec.rb
418
- - spec/mysql57/virtual/add_virtual_column_spec.rb
419
- - spec/mysql57/virtual/change_virtual_column_spec.rb
420
- - spec/mysql57/virtual/drop_virtual_column_spec.rb
421
- - spec/postgresql/diff/diff_spec.rb
422
- - spec/postgresql/dump/dump_spec.rb
423
- - spec/postgresql/fk/migrate_change_fk_spec.rb
424
- - spec/postgresql/fk/migrate_create_fk_spec.rb
425
- - spec/postgresql/fk/migrate_drop_fk_spec.rb
426
- - spec/postgresql/migrate/migrate_add_column_spec.rb
427
- - spec/postgresql/migrate/migrate_add_expression_index_spec.rb
428
- - spec/postgresql/migrate/migrate_bigint_spec.rb
429
- - spec/postgresql/migrate/migrate_change_column_default_spec.rb
430
- - spec/postgresql/migrate/migrate_change_column_spec.rb
431
- - spec/postgresql/migrate/migrate_change_index_spec.rb
432
- - spec/postgresql/migrate/migrate_check_relation_column_type_spec.rb
433
- - spec/postgresql/migrate/migrate_create_table_spec.rb
434
- - spec/postgresql/migrate/migrate_create_table_with_default_proc_spec.rb
435
- - spec/postgresql/migrate/migrate_drop_column_spec.rb
436
- - spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb
437
- - spec/postgresql/migrate/migrate_drop_expression_index_spec.rb
438
- - spec/postgresql/migrate/migrate_drop_index_spec.rb
439
- - spec/postgresql/migrate/migrate_drop_table_spec.rb
440
- - spec/postgresql/migrate/migrate_ext_cols_spec.rb
441
- - spec/postgresql/migrate/migrate_primary_key2_spec.rb
442
- - spec/postgresql/migrate/migrate_primary_key_spec.rb
443
- - spec/postgresql/migrate/migrate_references_spec.rb
444
- - spec/postgresql/migrate/migrate_rename_column_spec.rb
445
- - spec/postgresql/migrate/migrate_rename_table_spec.rb
446
- - spec/postgresql/migrate/migrate_same_spec.rb
447
- - spec/postgresql/ridgepole_test_database.sql
448
- - spec/postgresql/ridgepole_test_tables.sql
449
- - spec/postgresql/~default_name_fk/migrate_change_fk_spec.rb
450
- - spec/postgresql/~default_name_fk/migrate_create_fk_spec.rb
451
- - spec/postgresql/~default_name_fk/migrate_drop_fk_spec.rb
452
- - spec/processing_for_ci.rb
453
- - spec/spec_condition.rb
454
- - spec/spec_const.rb
455
- - spec/spec_helper.rb
456
325
  homepage: https://github.com/ridgepole/ridgepole
457
326
  licenses:
458
327
  - MIT
459
- metadata: {}
328
+ metadata:
329
+ rubygems_mfa_required: 'true'
460
330
  post_install_message:
461
331
  rdoc_options: []
462
332
  require_paths:
@@ -468,149 +338,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
468
338
  version: 2.2.7
469
339
  required_rubygems_version: !ruby/object:Gem::Requirement
470
340
  requirements:
471
- - - ">="
341
+ - - ">"
472
342
  - !ruby/object:Gem::Version
473
- version: '0'
343
+ version: 1.3.1
474
344
  requirements: []
475
- rubygems_version: 3.1.6
345
+ rubygems_version: 3.2.32
476
346
  signing_key:
477
347
  specification_version: 4
478
348
  summary: Ridgepole is a tool to manage DB schema.
479
- test_files:
480
- - spec/cli_helper.rb
481
- - spec/dsl_parser/context_spec.rb
482
- - spec/erb_helper.rb
483
- - spec/fixtures/for_require_relative_spec.rb
484
- - spec/hide_pending_formatter.rb
485
- - spec/mysql/_migrate/migrate_change_table_option_spec.rb
486
- - spec/mysql/bigint_pk/int_pk_spec.rb
487
- - spec/mysql/cli/config_spec.rb
488
- - spec/mysql/cli/ridgepole_spec.rb
489
- - spec/mysql/collation/collation_spec.rb
490
- - spec/mysql/comment/comment_spec.rb
491
- - spec/mysql/default_lambda/default_lambda_spec.rb
492
- - spec/mysql/diff/diff2_spec.rb
493
- - spec/mysql/diff/diff_spec.rb
494
- - spec/mysql/dump/dump_class_method_spec.rb
495
- - spec/mysql/dump/dump_some_tables_spec.rb
496
- - spec/mysql/dump/dump_spec.rb
497
- - spec/mysql/dump/dump_unknown_column_type_spec.rb
498
- - spec/mysql/dump/dump_without_table_options_spec.rb
499
- - spec/mysql/fk/migrate_change_fk2_spec.rb
500
- - spec/mysql/fk/migrate_change_fk_spec.rb
501
- - spec/mysql/fk/migrate_create_fk_spec.rb
502
- - spec/mysql/fk/migrate_drop_fk_spec.rb
503
- - spec/mysql/fk/migrate_fk_with_column_spec.rb
504
- - spec/mysql/fk/migrate_ignore_fk_spec.rb
505
- - spec/mysql/migrate/check_orphan_index_spec.rb
506
- - spec/mysql/migrate/migrate_add_column2_spec.rb
507
- - spec/mysql/migrate/migrate_add_column_order_spec.rb
508
- - spec/mysql/migrate/migrate_add_column_spec.rb
509
- - spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb
510
- - spec/mysql/migrate/migrate_add_column_with_script_spec.rb
511
- - spec/mysql/migrate/migrate_change_column2_spec.rb
512
- - spec/mysql/migrate/migrate_change_column3_spec.rb
513
- - spec/mysql/migrate/migrate_change_column4_spec.rb
514
- - spec/mysql/migrate/migrate_change_column5_spec.rb
515
- - spec/mysql/migrate/migrate_change_column6_spec.rb
516
- - spec/mysql/migrate/migrate_change_column7_spec.rb
517
- - spec/mysql/migrate/migrate_change_column8_spec.rb
518
- - spec/mysql/migrate/migrate_change_column_default_spec.rb
519
- - spec/mysql/migrate/migrate_change_column_float_spec.rb
520
- - spec/mysql/migrate/migrate_change_column_spec.rb
521
- - spec/mysql/migrate/migrate_change_index2_spec.rb
522
- - spec/mysql/migrate/migrate_change_index3_spec.rb
523
- - spec/mysql/migrate/migrate_change_index4_spec.rb
524
- - spec/mysql/migrate/migrate_change_index5_spec.rb
525
- - spec/mysql/migrate/migrate_change_index6_spec.rb
526
- - spec/mysql/migrate/migrate_change_index7_spec.rb
527
- - spec/mysql/migrate/migrate_change_index8_spec.rb
528
- - spec/mysql/migrate/migrate_change_index_spec.rb
529
- - spec/mysql/migrate/migrate_change_table_comment_spec.rb
530
- - spec/mysql/migrate/migrate_change_table_option_spec.rb
531
- - spec/mysql/migrate/migrate_check_relation_column_type_spec.rb
532
- - spec/mysql/migrate/migrate_create_index2_spec.rb
533
- - spec/mysql/migrate/migrate_create_index_spec.rb
534
- - spec/mysql/migrate/migrate_create_table_spec.rb
535
- - spec/mysql/migrate/migrate_create_table_with_ignore_spec.rb
536
- - spec/mysql/migrate/migrate_create_table_with_index_spec.rb
537
- - spec/mysql/migrate/migrate_create_table_with_options_spec.rb
538
- - spec/mysql/migrate/migrate_create_table_with_script_spec.rb
539
- - spec/mysql/migrate/migrate_drop_column_and_index2_spec.rb
540
- - spec/mysql/migrate/migrate_drop_column_and_index_spec.rb
541
- - spec/mysql/migrate/migrate_drop_column_and_unique_index_spec.rb
542
- - spec/mysql/migrate/migrate_drop_column_spec.rb
543
- - spec/mysql/migrate/migrate_drop_index_spec.rb
544
- - spec/mysql/migrate/migrate_drop_table_spec.rb
545
- - spec/mysql/migrate/migrate_duplicate_index_spec.rb
546
- - spec/mysql/migrate/migrate_duplicate_table_spec.rb
547
- - spec/mysql/migrate/migrate_empty_spec.rb
548
- - spec/mysql/migrate/migrate_execute_spec.rb
549
- - spec/mysql/migrate/migrate_ignore_column_spec.rb
550
- - spec/mysql/migrate/migrate_ignore_index_spec.rb
551
- - spec/mysql/migrate/migrate_log_file_spec.rb
552
- - spec/mysql/migrate/migrate_merge_mode_spec.rb
553
- - spec/mysql/migrate/migrate_noop_spec.rb
554
- - spec/mysql/migrate/migrate_primary_key_spec.rb
555
- - spec/mysql/migrate/migrate_rename_column_spec.rb
556
- - spec/mysql/migrate/migrate_rename_table_spec.rb
557
- - spec/mysql/migrate/migrate_same_default_null_spec.rb
558
- - spec/mysql/migrate/migrate_same_spec.rb
559
- - spec/mysql/migrate/migrate_script_error_spec.rb
560
- - spec/mysql/migrate/migrate_skip_column_comment_change_spec.rb
561
- - spec/mysql/migrate/migrate_skip_drop_table_spec.rb
562
- - spec/mysql/migrate/migrate_skip_rename_column_spec.rb
563
- - spec/mysql/migrate/migrate_skip_rename_table_spec.rb
564
- - spec/mysql/migrate/migrate_with_ignore_tables_spec.rb
565
- - spec/mysql/migrate/migrate_with_pre_post_query_spec.rb
566
- - spec/mysql/migrate/migrate_with_tables_spec.rb
567
- - spec/mysql/migrate/migrate_with_verbose_log_spec.rb
568
- - spec/mysql/ridgepole_test_database.sql
569
- - spec/mysql/ridgepole_test_tables.sql
570
- - spec/mysql/ridgepole_test_tables_unknown_column_type.sql
571
- - spec/mysql/text_blob_types/text_blob_types_spec.rb
572
- - spec/mysql/~default_name_fk/migrate_change_fk_spec.rb
573
- - spec/mysql/~default_name_fk/migrate_create_fk_spec.rb
574
- - spec/mysql/~default_name_fk/migrate_drop_fk_spec.rb
575
- - spec/mysql/~dump_auto_increment/migrate_create_table_with_index_spec.rb
576
- - spec/mysql57/json/add_json_column_spec.rb
577
- - spec/mysql57/json/change_json_column_spec.rb
578
- - spec/mysql57/json/drop_json_column_spec.rb
579
- - spec/mysql57/virtual/add_virtual_column_spec.rb
580
- - spec/mysql57/virtual/change_virtual_column_spec.rb
581
- - spec/mysql57/virtual/drop_virtual_column_spec.rb
582
- - spec/postgresql/diff/diff_spec.rb
583
- - spec/postgresql/dump/dump_spec.rb
584
- - spec/postgresql/fk/migrate_change_fk_spec.rb
585
- - spec/postgresql/fk/migrate_create_fk_spec.rb
586
- - spec/postgresql/fk/migrate_drop_fk_spec.rb
587
- - spec/postgresql/migrate/migrate_add_column_spec.rb
588
- - spec/postgresql/migrate/migrate_add_expression_index_spec.rb
589
- - spec/postgresql/migrate/migrate_bigint_spec.rb
590
- - spec/postgresql/migrate/migrate_change_column_default_spec.rb
591
- - spec/postgresql/migrate/migrate_change_column_spec.rb
592
- - spec/postgresql/migrate/migrate_change_index_spec.rb
593
- - spec/postgresql/migrate/migrate_check_relation_column_type_spec.rb
594
- - spec/postgresql/migrate/migrate_create_table_spec.rb
595
- - spec/postgresql/migrate/migrate_create_table_with_default_proc_spec.rb
596
- - spec/postgresql/migrate/migrate_drop_column_spec.rb
597
- - spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb
598
- - spec/postgresql/migrate/migrate_drop_expression_index_spec.rb
599
- - spec/postgresql/migrate/migrate_drop_index_spec.rb
600
- - spec/postgresql/migrate/migrate_drop_table_spec.rb
601
- - spec/postgresql/migrate/migrate_ext_cols_spec.rb
602
- - spec/postgresql/migrate/migrate_primary_key2_spec.rb
603
- - spec/postgresql/migrate/migrate_primary_key_spec.rb
604
- - spec/postgresql/migrate/migrate_references_spec.rb
605
- - spec/postgresql/migrate/migrate_rename_column_spec.rb
606
- - spec/postgresql/migrate/migrate_rename_table_spec.rb
607
- - spec/postgresql/migrate/migrate_same_spec.rb
608
- - spec/postgresql/ridgepole_test_database.sql
609
- - spec/postgresql/ridgepole_test_tables.sql
610
- - spec/postgresql/~default_name_fk/migrate_change_fk_spec.rb
611
- - spec/postgresql/~default_name_fk/migrate_create_fk_spec.rb
612
- - spec/postgresql/~default_name_fk/migrate_drop_fk_spec.rb
613
- - spec/processing_for_ci.rb
614
- - spec/spec_condition.rb
615
- - spec/spec_const.rb
616
- - spec/spec_helper.rb
349
+ test_files: []