ridgepole 0.6.5.beta14 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 184fc31f23a763530f7e09525823088ffe64862d
4
- data.tar.gz: f518e59e9ddfd309825af2715ef5210a6b3741d4
3
+ metadata.gz: c0b8970049df58ea142eb1bc723846cb5099eb5b
4
+ data.tar.gz: 886ba18f1c6b97e60756241ec8d4d6bc7e2e5c94
5
5
  SHA512:
6
- metadata.gz: b8e70c39e3c216266d9be688c91e2514f4fe634e86cac7072cc8774ef5d38567d95b57336e2068d782ec7ab8ec85280ddd6c9a485277197d227119045a8de6c0
7
- data.tar.gz: a266ae1c90b63f139760b9ac34b3e5e741114d330afaeed42c1432b3b815b48f033537eb80f2bc455fe641c33aa9012b1a49898306eeca6071231e8bb774f351
6
+ metadata.gz: 9806a409967575629a43d02b7cf9bf1ee42345a89fd7d004ab41b9c853bbc340434e5c4aa8b92db6ed707a5f26c612d3cda8c1d63ecb937ff6f1b612b1a1e110
7
+ data.tar.gz: d2491149f7e4d0f73747832c65e7b69b77232f6f6995a5845b90146e98fc94d5d058013242c2598282b12ba3d5cb3ccf2ccaac3741fe8cafe442808a0d08e557
data/.travis.yml CHANGED
@@ -5,12 +5,13 @@ cache:
5
5
  - bundler
6
6
  - apt
7
7
  rvm:
8
- - 2.2.4
9
- - 2.3.1
8
+ - 2.2.5
9
+ - 2.3.3
10
10
  before_install:
11
11
  - gem install bundler
12
- - sudo service postgresql stop
13
12
  before_script:
13
+ - sudo service mysql stop
14
+ - sudo service postgresql stop
14
15
  - docker-compose up -d
15
16
  - function mysql_ping { mysqladmin -u root -h 127.0.0.1 -ppassword ping > /dev/null 2> /dev/null; }
16
17
  - function pg_ping { PGPASSWORD=password pg_isready -U postgres -h 127.0.0.1 > /dev/null 2> /dev/null; }
data/README.md CHANGED
@@ -9,6 +9,18 @@ It defines DB schema using [Rails DSL](http://guides.rubyonrails.org/migrations.
9
9
  [![Build Status](https://travis-ci.org/winebarrel/ridgepole.svg?branch=master)](https://travis-ci.org/winebarrel/ridgepole)
10
10
  [![Coverage Status](https://coveralls.io/repos/winebarrel/ridgepole/badge.svg?branch=master)](https://coveralls.io/r/winebarrel/ridgepole?branch=master)
11
11
 
12
+ **Important**
13
+
14
+ Please don't use the following nameless fk:
15
+
16
+ ```ruby
17
+ add_foreign_key :articles, :authors # without `name:`
18
+ ```
19
+
20
+ **It is highly recommended to give a name to the fk explicitly.**
21
+
22
+ ![](https://cdn.pbrd.co/images/8Ymz6nU5x.gif)
23
+
12
24
  **Notice**
13
25
 
14
26
  * `>= 0.4.8`
@@ -205,7 +217,7 @@ add_index "child", ["parent_id"], name: "par_ind", using: :btree
205
217
  add_foreign_key "child", "parent", name: "child_ibfk_1"
206
218
  ```
207
219
 
208
- **Notice:** It is recommended to give a name to the index explicitly.
220
+ **Notice:** **It is highly recommended to give a name to the fk explicitly.**
209
221
 
210
222
  Please pass `--dump-with-default-fk-name` option if you want to use the nameless index.
211
223
 
data/bin/ridgepole CHANGED
@@ -112,7 +112,7 @@ ARGV.options do |opt|
112
112
  opt.on('', '--enable-mysql-awesome') { options[:enable_mysql_awesome] = true }
113
113
  opt.on('', '--mysql-use-alter') { options[:mysql_use_alter] = true }
114
114
  opt.on('', '--dump-without-table-options') { options[:dump_without_table_options] = true }
115
- opt.on('', '--dump-with-default-fk-name') { options[:dumb_with_default_fk_name] = true }
115
+ opt.on('', '--dump-with-default-fk-name') { options[:dump_with_default_fk_name] = true }
116
116
  opt.on('', '--index-removed-drop-column') { options[:index_removed_drop_column] = true }
117
117
  opt.on('-r', '--require LIBS', Array) {|v| v.each {|i| require i } }
118
118
  opt.on('' , '--log-file LOG_FILE') {|v| options[:log_file] = v }
@@ -22,7 +22,7 @@ class Ridgepole::Client
22
22
  require 'ridgepole/ext/abstract_mysql_adapter/use_alter_index'
23
23
  end
24
24
 
25
- if @options[:dumb_with_default_fk_name]
25
+ if @options[:dump_with_default_fk_name]
26
26
  require 'ridgepole/ext/schema_dumper'
27
27
  end
28
28
 
@@ -43,7 +43,7 @@ class Ridgepole::Client
43
43
  logger.verbose_info('# Parse DSL')
44
44
  expected_definition, expected_execute = @parser.parse(dsl, opts)
45
45
  logger.verbose_info('# Load tables')
46
- current_definition, current_execute = @parser.parse(@dumper.dump, opts)
46
+ current_definition, _current_execute = @parser.parse(@dumper.dump, opts)
47
47
  logger.verbose_info('# Compare definitions')
48
48
  @diff.diff(current_definition, expected_definition, :execute => expected_execute)
49
49
  end
@@ -53,9 +53,9 @@ class Ridgepole::Client
53
53
  logger = Ridgepole::Logger.instance
54
54
 
55
55
  logger.verbose_info('# Parse DSL1')
56
- definition1, execute1 = load_definition(dsl_or_config1, options)
56
+ definition1, _execute1 = load_definition(dsl_or_config1, options)
57
57
  logger.verbose_info('# Parse DSL2')
58
- definition2, execute2 = load_definition(dsl_or_config2, options)
58
+ definition2, _execute2 = load_definition(dsl_or_config2, options)
59
59
 
60
60
  logger.verbose_info('# Compare definitions')
61
61
  diff = Ridgepole::Diff.new(options)
@@ -195,6 +195,11 @@ class Ridgepole::DSLParser
195
195
  column_name.each do |col|
196
196
  options[:length][col] = index_length
197
197
  end
198
+
199
+ # XXX: fix for https://github.com/rails/rails/commit/5025fd3a99c68f95bdd6fd43f382c62e9653236b
200
+ if ActiveRecord::VERSION::MAJOR >= 6 or (ActiveRecord::VERSION::MAJOR == 5 and (ActiveRecord::VERSION::MINOR >= 1 or ActiveRecord::VERSION::TINY >= 1))
201
+ options[:length] = options[:length].symbolize_keys
202
+ end
198
203
  end
199
204
 
200
205
  @__definition[table_name][:indices][idx] = {
@@ -30,17 +30,24 @@ class Ridgepole::Dumper
30
30
  ActiveRecord::SchemaDumper.ignore_tables.clear
31
31
  end
32
32
 
33
- dsl = stream.string.lines.select {|line|
33
+ dsl = stream.string.lines.select do |line|
34
34
  line !~ /\A#/ &&
35
35
  line !~ /\AActiveRecord::Schema\.define/ &&
36
36
  line !~ /\Aend/
37
- }.map {|line|
38
- if @options[:dump_without_table_options] and line =~ /\A create_table /
39
- line.gsub(/, options: ("(?:[^"]|\")*")/, '')
40
- else
41
- line
37
+ end
38
+
39
+ # XXX: for activerecord-mysql-awesome
40
+ if ActiveRecord::VERSION::MAJOR < 5
41
+ dsl = dsl.map do |line|
42
+ if @options[:dump_without_table_options] and line =~ /\A create_table /
43
+ line.gsub(/, options: ("(?:[^"]|\")*")/, '')
44
+ else
45
+ line
46
+ end
42
47
  end
43
- }.join.strip_heredoc
48
+ end
49
+
50
+ dsl = dsl.join.strip_heredoc
44
51
 
45
52
  definitions = []
46
53
 
@@ -16,7 +16,7 @@ class Ridgepole::ExecuteExpander
16
16
  if sql =~ /\A(SELECT|SHOW)\b/i
17
17
  begin
18
18
  super(sql, name)
19
- rescue => e
19
+ rescue
20
20
  Stub.new
21
21
  end
22
22
  else
@@ -5,7 +5,9 @@ module Ridgepole
5
5
  module AbstractMysqlAdapter
6
6
  module DisableTableOptions
7
7
  def table_options(table_name)
8
- nil
8
+ options = super
9
+ options.delete(:options)
10
+ options
9
11
  end
10
12
  end
11
13
  end
@@ -31,7 +31,7 @@ class Ridgepole::ExternalSqlExecuter
31
31
  else
32
32
  @logger.info("#{script_basename}: #{data}")
33
33
  end
34
- rescue EOFError => e
34
+ rescue EOFError
35
35
  files.delete f
36
36
  end
37
37
  end
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.6.5.beta14'
2
+ VERSION = '0.6.5'
3
3
  end
data/spec/erb_helper.rb CHANGED
@@ -11,6 +11,10 @@ end
11
11
 
12
12
  ERBh.define_method(:add_index) do |table_name, column_name, options|
13
13
  if condition(:activerecord_5)
14
+ if options[:length].is_a?(Hash)
15
+ options[:length] = options[:length].symbolize_keys
16
+ end
17
+
14
18
  @_erbout.sub!(/\bend\s*\z/, '')
15
19
 
16
20
  <<-EOS
@@ -54,12 +54,6 @@ add_foreign_key "child", "parent", name: "child_ibfk_1"
54
54
  expect(delta.differ?).to be_truthy
55
55
  expect(subject.dump).to match_fuzzy sorted_actual_dsl
56
56
  delta.migrate
57
-
58
- # XXX:
59
- if condition(:activerecord_5)
60
- ActiveRecord::Base.connection.send(:create_table_info_cache).clear
61
- end
62
-
63
57
  expect(subject.dump).to match_fuzzy expected_dsl
64
58
  }
65
59
  end
@@ -47,19 +47,13 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
47
47
 
48
48
  before { subject.diff(actual_dsl).migrate }
49
49
 
50
- subject { client(dumb_with_default_fk_name: true) }
50
+ subject { client(dump_with_default_fk_name: true) }
51
51
 
52
52
  it {
53
53
  delta = subject.diff(expected_dsl)
54
54
  expect(delta.differ?).to be_truthy
55
55
  expect(subject.dump).to match_fuzzy sorted_actual_dsl
56
56
  delta.migrate
57
-
58
- # XXX:
59
- if condition(:activerecord_5)
60
- ActiveRecord::Base.connection.send(:create_table_info_cache).clear
61
- end
62
-
63
57
  expect(subject.dump).to match_fuzzy expected_dsl
64
58
  }
65
59
  end
@@ -21,7 +21,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
21
21
  }
22
22
 
23
23
  before { subject.diff(actual_dsl).migrate }
24
- subject { client(dumb_with_default_fk_name: true) }
24
+ subject { client(dump_with_default_fk_name: true) }
25
25
 
26
26
  it {
27
27
  delta = subject.diff(expected_dsl)
@@ -32,7 +32,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
32
32
  }
33
33
 
34
34
  it {
35
- delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dumb_with_default_fk_name: true)
35
+ delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dump_with_default_fk_name: true)
36
36
  expect(delta.differ?).to be_truthy
37
37
  expect(delta.script).to match_fuzzy <<-EOS
38
38
  remove_foreign_key("child", {:name=>"fk_rails_e74ce85cbc"})
@@ -40,7 +40,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
40
40
  }
41
41
 
42
42
  it {
43
- delta = client(bulk_change: true, dumb_with_default_fk_name: true).diff(expected_dsl)
43
+ delta = client(bulk_change: true, dump_with_default_fk_name: true).diff(expected_dsl)
44
44
  expect(delta.differ?).to be_truthy
45
45
  expect(subject.dump).to match_fuzzy actual_dsl
46
46
  expect(delta.script).to match_fuzzy <<-EOS
@@ -84,7 +84,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
84
84
  EOS
85
85
  }
86
86
 
87
- subject { client(dumb_with_default_fk_name: true) }
87
+ subject { client(dump_with_default_fk_name: true) }
88
88
 
89
89
  it {
90
90
  delta = subject.diff(dsl)
@@ -114,7 +114,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
114
114
  EOS
115
115
  }
116
116
 
117
- subject { client(dumb_with_default_fk_name: true) }
117
+ subject { client(dump_with_default_fk_name: true) }
118
118
 
119
119
  it {
120
120
  expect {
@@ -140,7 +140,7 @@ add_foreign_key "child", "parent"
140
140
  EOS
141
141
  }
142
142
 
143
- subject { client(dumb_with_default_fk_name: true) }
143
+ subject { client(dump_with_default_fk_name: true) }
144
144
 
145
145
  it {
146
146
  expect {
@@ -160,7 +160,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
160
160
  EOS
161
161
  }
162
162
 
163
- subject { client(dumb_with_default_fk_name: true) }
163
+ subject { client(dump_with_default_fk_name: true) }
164
164
 
165
165
  it {
166
166
  expect {
@@ -36,7 +36,7 @@ end
36
36
  }
37
37
 
38
38
  before { subject.diff(actual_dsl).migrate }
39
- subject { client(dumb_with_default_fk_name: true) }
39
+ subject { client(dump_with_default_fk_name: true) }
40
40
 
41
41
  it {
42
42
  delta = subject.diff(expected_dsl)
@@ -47,7 +47,7 @@ end
47
47
  }
48
48
 
49
49
  it {
50
- delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dumb_with_default_fk_name: true)
50
+ delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dump_with_default_fk_name: true)
51
51
  expect(delta.differ?).to be_truthy
52
52
  expect(delta.script).to match_fuzzy <<-EOS
53
53
  add_foreign_key("child", "parent", {:name=>"fk_rails_e74ce85cbc"})
@@ -55,7 +55,7 @@ end
55
55
  }
56
56
 
57
57
  it {
58
- delta = client(bulk_change: true, dumb_with_default_fk_name: true).diff(expected_dsl)
58
+ delta = client(bulk_change: true, dump_with_default_fk_name: true).diff(expected_dsl)
59
59
  expect(delta.differ?).to be_truthy
60
60
  expect(subject.dump).to match_fuzzy sorted_actual_dsl
61
61
  expect(delta.script).to match_fuzzy <<-EOS
@@ -99,7 +99,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
99
99
  }
100
100
 
101
101
  before { subject.diff(dsl).migrate }
102
- subject { client(dumb_with_default_fk_name: true) }
102
+ subject { client(dump_with_default_fk_name: true) }
103
103
 
104
104
  it {
105
105
  delta = subject.diff('')
@@ -47,7 +47,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
47
47
 
48
48
  before { subject.diff(actual_dsl).migrate }
49
49
 
50
- subject { client(dumb_with_default_fk_name: true) }
50
+ subject { client(dump_with_default_fk_name: true) }
51
51
 
52
52
  it {
53
53
  delta = subject.diff(expected_dsl)
@@ -21,7 +21,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
21
21
  }
22
22
 
23
23
  before { subject.diff(actual_dsl).migrate }
24
- subject { client(dumb_with_default_fk_name: true) }
24
+ subject { client(dump_with_default_fk_name: true) }
25
25
 
26
26
  it {
27
27
  delta = subject.diff(expected_dsl)
@@ -32,7 +32,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
32
32
  }
33
33
 
34
34
  it {
35
- delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dumb_with_default_fk_name: true)
35
+ delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dump_with_default_fk_name: true)
36
36
  expect(delta.differ?).to be_truthy
37
37
  expect(delta.script).to match_fuzzy <<-EOS
38
38
  remove_foreign_key("child", {:name=>"fk_rails_e74ce85cbc"})
@@ -40,7 +40,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
40
40
  }
41
41
 
42
42
  it {
43
- delta = client(bulk_change: true, dumb_with_default_fk_name: true).diff(expected_dsl)
43
+ delta = client(bulk_change: true, dump_with_default_fk_name: true).diff(expected_dsl)
44
44
  expect(delta.differ?).to be_truthy
45
45
  expect(subject.dump).to match_fuzzy actual_dsl
46
46
  expect(delta.script).to match_fuzzy <<-EOS
@@ -84,7 +84,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
84
84
  }
85
85
 
86
86
  before { client.diff('').migrate }
87
- subject { client(dumb_with_default_fk_name: true) }
87
+ subject { client(dump_with_default_fk_name: true) }
88
88
 
89
89
  it {
90
90
  delta = subject.diff(dsl)
@@ -114,7 +114,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
114
114
  EOS
115
115
  }
116
116
 
117
- subject { client(dumb_with_default_fk_name: true) }
117
+ subject { client(dump_with_default_fk_name: true) }
118
118
 
119
119
  it {
120
120
  expect {
@@ -140,7 +140,7 @@ add_foreign_key "child", "parent"
140
140
  EOS
141
141
  }
142
142
 
143
- subject { client(dumb_with_default_fk_name: true) }
143
+ subject { client(dump_with_default_fk_name: true) }
144
144
 
145
145
  it {
146
146
  expect {
@@ -160,7 +160,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
160
160
  EOS
161
161
  }
162
162
 
163
- subject { client(dumb_with_default_fk_name: true) }
163
+ subject { client(dump_with_default_fk_name: true) }
164
164
 
165
165
  it {
166
166
  expect {
@@ -36,7 +36,7 @@ end
36
36
  }
37
37
 
38
38
  before { subject.diff(actual_dsl).migrate }
39
- subject { client(dumb_with_default_fk_name: true) }
39
+ subject { client(dump_with_default_fk_name: true) }
40
40
 
41
41
  it {
42
42
  delta = subject.diff(expected_dsl)
@@ -47,7 +47,7 @@ end
47
47
  }
48
48
 
49
49
  it {
50
- delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dumb_with_default_fk_name: true)
50
+ delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dump_with_default_fk_name: true)
51
51
  expect(delta.differ?).to be_truthy
52
52
  expect(delta.script).to match_fuzzy <<-EOS
53
53
  add_foreign_key("child", "parent", {:name=>"fk_rails_e74ce85cbc"})
@@ -55,7 +55,7 @@ end
55
55
  }
56
56
 
57
57
  it {
58
- delta = client(bulk_change: true, dumb_with_default_fk_name: true).diff(expected_dsl)
58
+ delta = client(bulk_change: true, dump_with_default_fk_name: true).diff(expected_dsl)
59
59
  expect(delta.differ?).to be_truthy
60
60
  expect(subject.dump).to match_fuzzy sorted_actual_dsl
61
61
  expect(delta.script).to match_fuzzy <<-EOS
@@ -99,7 +99,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
99
99
  }
100
100
 
101
101
  before { subject.diff(dsl).migrate }
102
- subject { client(dumb_with_default_fk_name: true) }
102
+ subject { client(dump_with_default_fk_name: true) }
103
103
 
104
104
  it {
105
105
  delta = subject.diff('')
data/spec/spec_const.rb CHANGED
@@ -3,7 +3,7 @@ TEST_MYSQL_PORT = 3306
3
3
  TEST_MYSQL_USER = 'root'
4
4
  TEST_MYSQL_PASS = 'password'
5
5
 
6
- MYSQL_CLI = "MYSQL_PWD=#{TEST_MYSQL_PASS} mysql -h #{TEST_MYSQL_HOST} -P #{TEST_MYSQL_PORT} -u #{TEST_MYSQL_USER}"
6
+ MYSQL_CLI = "mysql -h #{TEST_MYSQL_HOST} -P #{TEST_MYSQL_PORT} -u #{TEST_MYSQL_USER} -p#{TEST_MYSQL_PASS} 2>/dev/null"
7
7
 
8
8
  TEST_PG_HOST = '127.0.0.1'
9
9
  TEST_PG_PORT = 5432
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.6.5.beta14
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-29 00:00:00.000000000 Z
11
+ date: 2017-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -360,9 +360,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
360
360
  version: '0'
361
361
  required_rubygems_version: !ruby/object:Gem::Requirement
362
362
  requirements:
363
- - - ">"
363
+ - - ">="
364
364
  - !ruby/object:Gem::Version
365
- version: 1.3.1
365
+ version: '0'
366
366
  requirements: []
367
367
  rubyforge_project:
368
368
  rubygems_version: 2.5.1