ridgepole 2.0.2 → 2.1.0

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: 5d65bef68e3d3fa568e43156be30e15f30535fb86e011b67170421d0e70c5724
4
+ data.tar.gz: a3ad7daa1a22b20f2c129f596b0fdc6d97e7ad37eb636e70538467101921d4d4
5
5
  SHA512:
6
- metadata.gz: e4c098c3eb46ba9d00147ec8dc4f2d494ae5a306e30dbce9cb38bc519d5726b1fe514846e7253b3870ed7b7ad4cb23a0e3e338f3755ad98dc6918f1faf25d88b
7
- data.tar.gz: 7b18857bdc397b49a31e136032ac38160c369da235af669a442d93d5685ba5aade0fc549a711da3e0654503b669d6d1c70be1789152bbabf4e67ecf9b16974da
6
+ metadata.gz: cecb8da2a635ed1ef07957b3cff60d5589a949ec0744b7322335f09e1dc52ed40e1deaca86866608644421e628b4dba0c724370018f79616d4c4878f649ed07e
7
+ data.tar.gz: 259fbf99721f371c98cb485eea834f862a69d67d405bfb7c637c3a6247bce3ddb8c672f9204785e5fec102f53168f0a73c1cf72f4da315bdcfe170903a75ffb4
data/Appraisals CHANGED
@@ -11,3 +11,7 @@ end
11
11
  appraise 'activerecord-7.1' do
12
12
  gem 'activerecord', '~> 7.1.0'
13
13
  end
14
+
15
+ appraise 'activerecord-7.2' do
16
+ gem 'activerecord', '~> 7.2.0'
17
+ end
data/CHANGELOG.md CHANGED
@@ -2,13 +2,17 @@
2
2
 
3
3
  ## 2.0
4
4
 
5
- ### 2.0.2 (2024/02/25)
5
+ ### 2.1.0 (2024/08/11)
6
6
 
7
- - Fix bug that cannot include single quote in table comment [pull#467](https://github.com/ridgepole/ridgepole/pull/467)
7
+ - Support Rails 7.2 [pull#490](https://github.com/ridgepole/ridgepole/pull/490)
8
8
 
9
- ### 2.0.1 (2023/11/22)
9
+ ### 2.0.3 (2024/04/21)
10
10
 
11
- - Fix renamed_from bug [pull#453](https://github.com/ridgepole/ridgepole/pull/453)
11
+ - Add `--drop-table-only` option [pull#477](https://github.com/ridgepole/ridgepole/pull/477)
12
+
13
+ ### 2.0.2 (2024/02/25)
14
+
15
+ - Fix bug that cannot include single quote in table comment [pull#467](https://github.com/ridgepole/ridgepole/pull/467)
12
16
 
13
17
  ### 2.0.1 (2023/11/22)
14
18
 
@@ -41,7 +45,7 @@
41
45
 
42
46
  - Updated supported column types [pull#399](https://github.com/ridgepole/ridgepole/pull/399) [pull#400](https://github.com/ridgepole/ridgepole/pull/400)
43
47
  - Support check constraint [pull#393](https://github.com/ridgepole/ridgepole/pull/393) [pull#397](https://github.com/ridgepole/ridgepole/pull/397)
44
- - Drop suport Rails 5.x [pull#395](https://github.com/ridgepole/ridgepole/pull/395)
48
+ - Drop support Rails 5.x [pull#395](https://github.com/ridgepole/ridgepole/pull/395)
45
49
 
46
50
  ## 1.1
47
51
 
data/README.md CHANGED
@@ -40,7 +40,7 @@ Add this line to your application's Gemfile:
40
40
 
41
41
  And then execute:
42
42
 
43
- $ bundle
43
+ $ bundle install
44
44
 
45
45
  Or install it yourself as:
46
46
 
@@ -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
 
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 7.2.0"
6
+
7
+ gemspec path: "../"
@@ -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
 
@@ -92,7 +92,11 @@ module Ridgepole
92
92
  stream = StringIO.new
93
93
  conn.without_table_options(@options[:dump_without_table_options]) do
94
94
  ActiveRecord::SchemaDumper.with_default_fk_name(@options[:dump_with_default_fk_name]) do
95
- ActiveRecord::SchemaDumper.dump(conn, stream)
95
+ if ActiveRecord.gem_version < Gem::Version.new('7.2.0')
96
+ ActiveRecord::SchemaDumper.dump(conn, stream)
97
+ else
98
+ ActiveRecord::SchemaDumper.dump(conn.pool, stream)
99
+ end
96
100
  end
97
101
  end
98
102
  stream
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ridgepole
4
- VERSION = '2.0.2'
4
+ VERSION = '2.1.0'
5
5
  end
data/ridgepole.gemspec CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.required_ruby_version = Gem::Requirement.new('>= 2.7')
26
26
 
27
- spec.add_dependency 'activerecord', '>= 6.1', '< 7.2'
27
+ spec.add_dependency 'activerecord', '>= 6.1', '< 8.0'
28
28
  spec.add_dependency 'diffy'
29
29
 
30
30
  spec.add_development_dependency 'appraisal', '>= 2.2.0'
@@ -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.65.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.1.0
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-08-11 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: '6.1'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.2'
22
+ version: '8.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '6.1'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.2'
32
+ version: '8.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: diffy
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -218,14 +218,14 @@ dependencies:
218
218
  requirements:
219
219
  - - '='
220
220
  - !ruby/object:Gem::Version
221
- version: 1.60.2
221
+ version: 1.65.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.65.1
229
229
  - !ruby/object:Gem::Dependency
230
230
  name: rubocop-rake
231
231
  requirement: !ruby/object:Gem::Requirement
@@ -319,6 +319,7 @@ files:
319
319
  - gemfiles/activerecord_6.1.gemfile
320
320
  - gemfiles/activerecord_7.0.gemfile
321
321
  - gemfiles/activerecord_7.1.gemfile
322
+ - gemfiles/activerecord_7.2.gemfile
322
323
  - lib/ridgepole.rb
323
324
  - lib/ridgepole/cli/config.rb
324
325
  - lib/ridgepole/client.rb