ridgepole 2.0.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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