ridgepole 2.0.2 → 2.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 212f7ac739d81f903fa7df88232f8e17e28b953628d03f9cd9a7c59baa037162
4
- data.tar.gz: d61273f751c642076ee08849439b0505f97de16c86426a8f5c8e950a1a661f17
3
+ metadata.gz: 2e28849a4ffd0e89057ec0aca0d8144a7c627f6947efe49a0c0ebcb3a5bf8d91
4
+ data.tar.gz: cff35f1be11654d25a0aa954d2d1af85ee8b7c5aa649ce2425227637ca340b10
5
5
  SHA512:
6
- metadata.gz: e4c098c3eb46ba9d00147ec8dc4f2d494ae5a306e30dbce9cb38bc519d5726b1fe514846e7253b3870ed7b7ad4cb23a0e3e338f3755ad98dc6918f1faf25d88b
7
- data.tar.gz: 7b18857bdc397b49a31e136032ac38160c369da235af669a442d93d5685ba5aade0fc549a711da3e0654503b669d6d1c70be1789152bbabf4e67ecf9b16974da
6
+ metadata.gz: 893204d453f9d96468e6a43e5843d5c1f8b2407f3b14bc4572836022ca240b4eaf3f8a39163ee2dcd753168640bce8b721fde35da5a713ce7941056c2e71a747
7
+ data.tar.gz: 33366d9df07035e062ad42a534292200076358c60242c17f14c05d6ba63c98443e35cf15ab21af097feb303e8257efc10f253c89c379daf0264a17a3b56d8bb8
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## 2.0
4
4
 
5
+ ### 2.0.2 (2024/04/21)
6
+
7
+ - Add `--drop-table-only` option [pull#477](https://github.com/ridgepole/ridgepole/pull/477)
8
+
5
9
  ### 2.0.2 (2024/02/25)
6
10
 
7
11
  - Fix bug that cannot include single quote in table comment [pull#467](https://github.com/ridgepole/ridgepole/pull/467)
data/README.md CHANGED
@@ -82,13 +82,14 @@ Usage: ridgepole [options]
82
82
  --dump-with-default-fk-name
83
83
  --index-removed-drop-column
84
84
  --drop-table
85
+ --drop-table-only
85
86
  --mysql-change-table-options
86
87
  --mysql-change-table-comment
87
88
  --check-relation-type DEF_PK
88
89
  --ignore-table-comment
89
90
  --skip-column-comment-change
90
- --create-table-with-index
91
91
  --allow-pk-change
92
+ --create-table-with-index
92
93
  --mysql-dump-auto-increment
93
94
  -r, --require LIBS
94
95
  --log-file LOG_FILE
@@ -338,7 +339,8 @@ bundle exec appraisal activerecord-7.0 rake
338
339
  # MYSQL80=1 bundle exec appraisal activerecord-7.0 rake
339
340
  ```
340
341
 
341
- **Notice:** Ruby 2.6 or above/mysql-client/postgresql-client is required.
342
+ > [!note]
343
+ > mysql-client/postgresql-client is required for testing.
342
344
 
343
345
  ## Demo
344
346
 
data/bin/ridgepole CHANGED
@@ -86,8 +86,7 @@ ARGV.options do |opt|
86
86
  opt.on('', '--dry-run') { options[:dry_run] = true }
87
87
  opt.on('', '--table-options OPTIONS') { |v| options[:table_options] = v }
88
88
  opt.on('', '--table-hash-options OPTIONS') do |v|
89
- # NOTE: Ruby2.4 doesn't support `symbolize_names: true`
90
- hash = YAML.safe_load(v).deep_symbolize_keys
89
+ hash = YAML.safe_load(v, symbolize_names: true)
91
90
 
92
91
  case hash[:id]
93
92
  when String
@@ -137,6 +136,7 @@ ARGV.options do |opt|
137
136
  opt.on('', '--dump-with-default-fk-name') { options[:dump_with_default_fk_name] = true }
138
137
  opt.on('', '--index-removed-drop-column') { options[:index_removed_drop_column] = true }
139
138
  opt.on('', '--drop-table') { options[:force_drop_table] = true }
139
+ opt.on('', '--drop-table-only') { options[:drop_table_only] = true }
140
140
  opt.on('', '--mysql-change-table-options') { options[:mysql_change_table_options] = true }
141
141
  opt.on('', '--mysql-change-table-comment') { options[:mysql_change_table_comment] = true }
142
142
  opt.on('', '--check-relation-type DEF_PK') { |v| options[:check_relation_type] = v }
@@ -265,15 +265,13 @@ begin
265
265
  else
266
266
  File.open(diff_file)
267
267
  end
268
- elsif Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.1.0.pre1') # Ruby 2.6
268
+ else
269
269
  YAML.safe_load(
270
270
  diff_file,
271
271
  permitted_classes: [],
272
272
  permitted_symbols: [],
273
273
  aliases: true
274
274
  )
275
- else
276
- YAML.safe_load(diff_file, [], [], true)
277
275
  end
278
276
  end
279
277
 
@@ -13,15 +13,13 @@ module Ridgepole
13
13
  parse_config_file(config)
14
14
  elsif (expanded = File.expand_path(config)) && File.exist?(expanded)
15
15
  parse_config_file(expanded)
16
- elsif Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.1.0.pre1') # Ruby 2.6
16
+ else
17
17
  YAML.safe_load(
18
18
  ERB.new(config).result,
19
19
  permitted_classes: [],
20
20
  permitted_symbols: [],
21
21
  aliases: true
22
22
  )
23
- else
24
- YAML.safe_load(ERB.new(config).result, [], [], true)
25
23
  end
26
24
 
27
25
  parsed_config = parse_database_url(config) unless parsed_config.is_a?(Hash)
@@ -39,17 +37,12 @@ module Ridgepole
39
37
 
40
38
  def parse_config_file(path)
41
39
  yaml = ERB.new(File.read(path)).result
42
-
43
- if Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.1.0.pre1') # Ruby 2.6
44
- YAML.safe_load(
45
- yaml,
46
- permitted_classes: [],
47
- permitted_symbols: [],
48
- aliases: true
49
- )
50
- else
51
- YAML.safe_load(yaml, [], [], true)
52
- end
40
+ YAML.safe_load(
41
+ yaml,
42
+ permitted_classes: [],
43
+ permitted_symbols: [],
44
+ aliases: true
45
+ )
53
46
  end
54
47
 
55
48
  def parse_database_url(config)
@@ -28,12 +28,14 @@ module Ridgepole
28
28
  if (from_attrs = from.delete(table_name))
29
29
  @logger.verbose_info("# #{table_name}")
30
30
 
31
- unless (attrs_delta = diff_inspect(from_attrs, to_attrs)).empty?
32
- @logger.verbose_info(attrs_delta)
33
- end
31
+ unless @options[:drop_table_only]
32
+ unless (attrs_delta = diff_inspect(from_attrs, to_attrs)).empty?
33
+ @logger.verbose_info(attrs_delta)
34
+ end
34
35
 
35
- scan_change(table_name, from_attrs, to_attrs, delta)
36
- else
36
+ scan_change(table_name, from_attrs, to_attrs, delta)
37
+ end
38
+ elsif !@options[:drop_table_only]
37
39
  delta[:add] ||= {}
38
40
  delta[:add][table_name] = to_attrs
39
41
  end
@@ -41,7 +43,7 @@ module Ridgepole
41
43
 
42
44
  scan_relation_info(relation_info)
43
45
 
44
- if !@options[:merge] && @options[:force_drop_table]
46
+ if !@options[:merge] && (@options[:force_drop_table] || @options[:drop_table_only])
45
47
  from.each do |table_name, from_attrs|
46
48
  next unless target?(table_name)
47
49
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ridgepole
4
- VERSION = '2.0.2'
4
+ VERSION = '2.0.3'
5
5
  end
data/ridgepole.gemspec CHANGED
@@ -39,7 +39,7 @@ Gem::Specification.new do |spec|
39
39
  spec.add_development_dependency 'rspec', '>= 3.0.0'
40
40
  spec.add_development_dependency 'rspec-match_fuzzy', '>= 0.2.0'
41
41
  spec.add_development_dependency 'rspec-match_ruby', '>= 0.1.3'
42
- spec.add_development_dependency 'rubocop', '1.60.2'
42
+ spec.add_development_dependency 'rubocop', '1.63.1'
43
43
  spec.add_development_dependency 'rubocop-rake', '>= 0.5.1'
44
44
  spec.add_development_dependency 'rubocop-rspec', '>= 2.1.0'
45
45
  spec.add_development_dependency 'simplecov'
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: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-25 00:00:00.000000000 Z
11
+ date: 2024-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -218,14 +218,14 @@ dependencies:
218
218
  requirements:
219
219
  - - '='
220
220
  - !ruby/object:Gem::Version
221
- version: 1.60.2
221
+ version: 1.63.1
222
222
  type: :development
223
223
  prerelease: false
224
224
  version_requirements: !ruby/object:Gem::Requirement
225
225
  requirements:
226
226
  - - '='
227
227
  - !ruby/object:Gem::Version
228
- version: 1.60.2
228
+ version: 1.63.1
229
229
  - !ruby/object:Gem::Dependency
230
230
  name: rubocop-rake
231
231
  requirement: !ruby/object:Gem::Requirement