ridgepole 0.6.5.beta14 → 0.6.5

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
  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