ridgepole 0.7.1 → 0.7.2.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -3
  3. data/Appraisals +8 -0
  4. data/README.md +2 -0
  5. data/docker-compose.yml +2 -2
  6. data/gemfiles/activerecord_5.2.gemfile +11 -0
  7. data/lib/ridgepole/ext/schema_dumper.rb +1 -1
  8. data/lib/ridgepole/schema_statements_ext.rb +2 -2
  9. data/lib/ridgepole/version.rb +1 -1
  10. data/ridgepole.gemspec +1 -0
  11. data/spec/erb_helper.rb +3 -1
  12. data/spec/mysql/_migrate/migrate_change_table_option_spec.rb +5 -5
  13. data/spec/mysql/bigint_pk/int_pk_spec.rb +2 -2
  14. data/spec/mysql/collation/collation_spec.rb +15 -15
  15. data/spec/mysql/comment/comment_spec.rb +10 -10
  16. data/spec/mysql/default_lambda/default_lambda_spec.rb +2 -2
  17. data/spec/mysql/diff/diff2_spec.rb +4 -4
  18. data/spec/mysql/diff/diff_spec.rb +4 -4
  19. data/spec/mysql/dump/dump_class_method_spec.rb +3 -3
  20. data/spec/mysql/dump/dump_some_tables_spec.rb +2 -2
  21. data/spec/mysql/dump/dump_spec.rb +3 -3
  22. data/spec/mysql/dump/dump_unknown_column_type_spec.rb +1 -1
  23. data/spec/mysql/dump/dump_without_table_options_spec.rb +2 -2
  24. data/spec/mysql/fk/migrate_change_fk_spec.rb +16 -16
  25. data/spec/mysql/fk/migrate_create_fk_spec.rb +14 -14
  26. data/spec/mysql/fk/migrate_drop_fk_spec.rb +18 -18
  27. data/spec/mysql/migrate/migrate_add_column2_spec.rb +8 -8
  28. data/spec/mysql/migrate/migrate_add_column_order_spec.rb +12 -12
  29. data/spec/mysql/migrate/migrate_add_column_spec.rb +4 -4
  30. data/spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb +2 -2
  31. data/spec/mysql/migrate/migrate_add_column_with_script_spec.rb +2 -2
  32. data/spec/mysql/migrate/migrate_change_column2_spec.rb +2 -2
  33. data/spec/mysql/migrate/migrate_change_column3_spec.rb +14 -14
  34. data/spec/mysql/migrate/migrate_change_column5_spec.rb +4 -4
  35. data/spec/mysql/migrate/migrate_change_column6_spec.rb +11 -11
  36. data/spec/mysql/migrate/migrate_change_column7_spec.rb +2 -2
  37. data/spec/mysql/migrate/migrate_change_column_default_spec.rb +20 -20
  38. data/spec/mysql/migrate/migrate_change_column_float_spec.rb +9 -4
  39. data/spec/mysql/migrate/migrate_change_column_spec.rb +7 -7
  40. data/spec/mysql/migrate/migrate_change_index2_spec.rb +2 -2
  41. data/spec/mysql/migrate/migrate_change_index3_spec.rb +4 -4
  42. data/spec/mysql/migrate/migrate_change_index4_spec.rb +6 -6
  43. data/spec/mysql/migrate/migrate_change_index5_spec.rb +2 -2
  44. data/spec/mysql/migrate/migrate_change_index6_spec.rb +2 -2
  45. data/spec/mysql/migrate/migrate_change_index7_spec.rb +7 -7
  46. data/spec/mysql/migrate/migrate_change_index8_spec.rb +7 -7
  47. data/spec/mysql/migrate/migrate_change_index_spec.rb +3 -3
  48. data/spec/mysql/migrate/migrate_change_table_option_spec.rb +4 -4
  49. data/spec/mysql/migrate/migrate_check_relation_column_type_spec.rb +8 -8
  50. data/spec/mysql/migrate/migrate_create_index2_spec.rb +2 -2
  51. data/spec/mysql/migrate/migrate_create_index_spec.rb +4 -4
  52. data/spec/mysql/migrate/migrate_create_table_spec.rb +2 -2
  53. data/spec/mysql/migrate/migrate_create_table_with_index_spec.rb +2 -2
  54. data/spec/mysql/migrate/migrate_create_table_with_script_spec.rb +2 -2
  55. data/spec/mysql/migrate/migrate_drop_column_and_index2_spec.rb +4 -4
  56. data/spec/mysql/migrate/migrate_drop_column_and_index_spec.rb +6 -6
  57. data/spec/mysql/migrate/migrate_drop_column_and_unique_index_spec.rb +4 -4
  58. data/spec/mysql/migrate/migrate_drop_column_spec.rb +4 -4
  59. data/spec/mysql/migrate/migrate_drop_index_spec.rb +4 -4
  60. data/spec/mysql/migrate/migrate_drop_table_spec.rb +2 -2
  61. data/spec/mysql/migrate/migrate_empty_spec.rb +2 -2
  62. data/spec/mysql/migrate/migrate_execute_spec.rb +23 -23
  63. data/spec/mysql/migrate/migrate_log_file_spec.rb +2 -2
  64. data/spec/mysql/migrate/migrate_merge_mode_spec.rb +2 -2
  65. data/spec/mysql/migrate/migrate_noop_spec.rb +27 -27
  66. data/spec/mysql/migrate/migrate_primary_key_spec.rb +2 -2
  67. data/spec/mysql/migrate/migrate_rename_column_spec.rb +4 -4
  68. data/spec/mysql/migrate/migrate_rename_table_spec.rb +4 -4
  69. data/spec/mysql/migrate/migrate_same_default_null_spec.rb +4 -4
  70. data/spec/mysql/migrate/migrate_same_spec.rb +5 -5
  71. data/spec/mysql/migrate/migrate_script_error_spec.rb +1 -1
  72. data/spec/mysql/migrate/migrate_skip_drop_table_spec.rb +2 -2
  73. data/spec/mysql/migrate/migrate_skip_rename_column_spec.rb +2 -2
  74. data/spec/mysql/migrate/migrate_skip_rename_table_spec.rb +2 -2
  75. data/spec/mysql/migrate/migrate_with_ignore_tables_spec.rb +2 -2
  76. data/spec/mysql/migrate/migrate_with_pre_post_query_spec.rb +2 -2
  77. data/spec/mysql/migrate/migrate_with_tables_spec.rb +2 -2
  78. data/spec/mysql/migrate/migrate_with_verbose_log_spec.rb +2 -2
  79. data/spec/mysql/migrate_/migrate_create_index_with_alter_spec.rb +2 -2
  80. data/spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb +2 -2
  81. data/spec/mysql/text_blob_types/text_blob_types_spec.rb +1 -1
  82. data/spec/mysql/~default_name_fk/migrate_change_fk_spec.rb +4 -4
  83. data/spec/mysql/~default_name_fk/migrate_create_fk_spec.rb +9 -9
  84. data/spec/mysql/~default_name_fk/migrate_drop_fk_spec.rb +6 -6
  85. data/spec/mysql/~dump_auto_increment/migrate_create_table_with_index_spec.rb +2 -2
  86. data/spec/mysql57/json/add_json_column_spec.rb +2 -2
  87. data/spec/mysql57/json/change_json_column_spec.rb +6 -6
  88. data/spec/mysql57/json/drop_json_column_spec.rb +2 -2
  89. data/spec/mysql57/virtual/add_virtual_column_spec.rb +2 -2
  90. data/spec/mysql57/virtual/change_virtual_column_spec.rb +2 -2
  91. data/spec/mysql57/virtual/drop_virtual_column_spec.rb +2 -2
  92. data/spec/postgresql/dump/dump_spec.rb +3 -3
  93. data/spec/postgresql/fk/migrate_change_fk_spec.rb +2 -2
  94. data/spec/postgresql/fk/migrate_create_fk_spec.rb +8 -8
  95. data/spec/postgresql/fk/migrate_drop_fk_spec.rb +4 -4
  96. data/spec/postgresql/migrate/migrate_add_column_spec.rb +6 -6
  97. data/spec/postgresql/migrate/migrate_bigint_spec.rb +2 -2
  98. data/spec/postgresql/migrate/migrate_change_column_default_spec.rb +2 -2
  99. data/spec/postgresql/migrate/migrate_change_column_spec.rb +4 -4
  100. data/spec/postgresql/migrate/migrate_change_index_spec.rb +3 -3
  101. data/spec/postgresql/migrate/migrate_check_relation_column_type_spec.rb +4 -4
  102. data/spec/postgresql/migrate/migrate_create_table_spec.rb +2 -2
  103. data/spec/postgresql/migrate/migrate_create_table_with_default_proc_spec.rb +8 -8
  104. data/spec/postgresql/migrate/migrate_drop_column_spec.rb +4 -4
  105. data/spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb +6 -6
  106. data/spec/postgresql/migrate/migrate_drop_index_spec.rb +4 -4
  107. data/spec/postgresql/migrate/migrate_drop_table_spec.rb +2 -2
  108. data/spec/postgresql/migrate/migrate_ext_cols_spec.rb +2 -2
  109. data/spec/postgresql/migrate/migrate_references_spec.rb +6 -6
  110. data/spec/postgresql/migrate/migrate_rename_column_spec.rb +4 -4
  111. data/spec/postgresql/migrate/migrate_rename_table_spec.rb +4 -4
  112. data/spec/postgresql/migrate/migrate_same_spec.rb +5 -5
  113. data/spec/postgresql/~default_name_fk/migrate_change_fk_spec.rb +1 -1
  114. data/spec/postgresql/~default_name_fk/migrate_create_fk_spec.rb +4 -4
  115. data/spec/postgresql/~default_name_fk/migrate_drop_fk_spec.rb +2 -2
  116. data/spec/spec_condition.rb +7 -0
  117. data/spec/spec_helper.rb +1 -0
  118. metadata +19 -4
@@ -54,9 +54,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
54
54
  it {
55
55
  delta = subject.diff(expected_dsl)
56
56
  expect(delta.differ?).to be_truthy
57
- expect(subject.dump).to match_fuzzy actual_dsl
57
+ expect(subject.dump).to match_ruby actual_dsl
58
58
  delta.migrate
59
- expect(subject.dump).to match_fuzzy expected_dsl
59
+ expect(subject.dump).to match_ruby expected_dsl
60
60
  }
61
61
  end
62
62
  end
@@ -3,8 +3,8 @@ describe 'Ridgepole::Client#diff -> migrate' do
3
3
  let(:actual_dsl) {
4
4
  erbh(<<-EOS)
5
5
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
6
- t.<%= cond(5.1, 'bigint', 'integer') %> "products_id"
7
- t.<%= cond(5.1, 'bigint', 'integer') %> "user_id"
6
+ t.<%= cond('>= 5.1','bigint', 'integer') %> "products_id"
7
+ t.<%= cond('>= 5.1','bigint', 'integer') %> "user_id"
8
8
  t.index "products_id"
9
9
  t.index "user_id"
10
10
  end
@@ -32,9 +32,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
32
32
  let(:actual_dsl) {
33
33
  erbh(<<-EOS)
34
34
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
35
- t.<%= cond(5.1, 'bigint', 'integer') %> "products_id"
35
+ t.<%= cond('>= 5.1','bigint', 'integer') %> "products_id"
36
36
  t.string "products_type"
37
- t.<%= cond(5.1, 'bigint', 'integer') %> "user_id"
37
+ t.<%= cond('>= 5.1','bigint', 'integer') %> "user_id"
38
38
  t.string "user_type"
39
39
  t.index ["products_type", "products_id"]
40
40
  t.index ["user_type", "user_id"]
@@ -63,8 +63,8 @@ describe 'Ridgepole::Client#diff -> migrate' do
63
63
  let(:actual_dsl) {
64
64
  erbh(<<-EOS)
65
65
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
66
- t.<%= cond(5.1, 'bigint', 'integer') %> "products_id"
67
- t.<%= cond(5.1, 'bigint', 'integer') %> "user_id"
66
+ t.<%= cond('>= 5.1','bigint', 'integer') %> "products_id"
67
+ t.<%= cond('>= 5.1','bigint', 'integer') %> "user_id"
68
68
  end
69
69
  EOS
70
70
  }
@@ -128,15 +128,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
128
128
  it {
129
129
  delta = subject.diff(expected_dsl)
130
130
  expect(delta.differ?).to be_truthy
131
- expect(subject.dump).to match_fuzzy actual_dsl
131
+ expect(subject.dump).to match_ruby actual_dsl
132
132
  delta.migrate
133
- expect(subject.dump).to match_fuzzy expected_dsl.gsub(/\s*,\s*renamed_from:.*$/, '')
133
+ expect(subject.dump).to match_ruby expected_dsl.gsub(/\s*,\s*renamed_from:.*$/, '')
134
134
  }
135
135
 
136
136
  it {
137
137
  delta = client(:bulk_change => true).diff(expected_dsl)
138
138
  expect(delta.differ?).to be_truthy
139
- expect(subject.dump).to match_fuzzy actual_dsl
139
+ expect(subject.dump).to match_ruby actual_dsl
140
140
  expect(delta.script).to match_fuzzy <<-EOS
141
141
  change_table("dept_emp", {:bulk => true}) do |t|
142
142
  t.rename("from_date", "from_date2")
@@ -147,7 +147,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
147
147
  end
148
148
  EOS
149
149
  delta.migrate
150
- expect(subject.dump).to match_fuzzy expected_dsl.gsub(/\s*,\s*renamed_from:.*$/, '')
150
+ expect(subject.dump).to match_ruby expected_dsl.gsub(/\s*,\s*renamed_from:.*$/, '')
151
151
  }
152
152
  end
153
153
  end
@@ -128,9 +128,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
128
128
  it {
129
129
  delta = subject.diff(expected_dsl)
130
130
  expect(delta.differ?).to be_truthy
131
- expect(subject.dump).to match_fuzzy actual_dsl
131
+ expect(subject.dump).to match_ruby actual_dsl
132
132
  delta.migrate
133
- expect(subject.dump).to match_fuzzy expected_dsl.gsub(/, renamed_from: 'employees'/, '')
133
+ expect(subject.dump).to match_ruby expected_dsl.gsub(/, renamed_from: 'employees'/, '')
134
134
  }
135
135
  end
136
136
 
@@ -165,9 +165,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
165
165
  it {
166
166
  delta = subject.diff(expected_dsl)
167
167
  expect(delta.differ?).to be_truthy
168
- expect(subject.dump).to match_fuzzy actual_dsl
168
+ expect(subject.dump).to match_ruby actual_dsl
169
169
  delta.migrate(noop: true)
170
- expect(subject.dump).to match_fuzzy actual_dsl
170
+ expect(subject.dump).to match_ruby actual_dsl
171
171
  }
172
172
  end
173
173
  end
@@ -2,7 +2,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
2
2
  context 'when database and definition are same' do
3
3
  let(:dsl) {
4
4
  erbh(<<-EOS)
5
- create_table "clubs", <%= i cond(5.1, id: :serial) + {force: :cascade} %> do |t|
5
+ create_table "clubs", <%= i cond('>= 5.1',id: :serial) + {force: :cascade} %> do |t|
6
6
  t.string "name", limit: 255, default: "", null: false
7
7
  t.index ["name"], name: "idx_name", unique: true, <%= i cond(5.0, using: :btree) %>
8
8
  end
@@ -30,13 +30,13 @@ describe 'Ridgepole::Client#diff -> migrate' do
30
30
  t.index ["emp_no"], name: "idx_dept_manager_emp_no", <%= i cond(5.0, using: :btree) %>
31
31
  end
32
32
 
33
- create_table "employee_clubs", <%= i cond(5.1, id: :serial) + {force: :cascade} %> do |t|
33
+ create_table "employee_clubs", <%= i cond('>= 5.1',id: :serial) + {force: :cascade} %> do |t|
34
34
  t.integer "emp_no", null: false
35
35
  t.integer "club_id", null: false
36
36
  t.index ["emp_no", "club_id"], name: "idx_employee_clubs_emp_no_club_id", <%= i cond(5.0, using: :btree) %>
37
37
  end
38
38
 
39
- create_table "employees", primary_key: "emp_no", <%= i({id: :integer} + cond(5.1, default: nil) + {force: :cascade}) %> do |t|
39
+ create_table "employees", primary_key: "emp_no", <%= i({id: :integer} + cond('>= 5.1',default: nil) + {force: :cascade}) %> do |t|
40
40
  t.date "birth_date", null: false
41
41
  t.string "first_name", limit: 14, null: false
42
42
  t.string "last_name", limit: 16, null: false
@@ -67,9 +67,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
67
  it {
68
68
  delta = subject.diff(dsl)
69
69
  expect(delta.differ?).to be_falsey
70
- expect(subject.dump).to match_fuzzy dsl
70
+ expect(subject.dump).to match_ruby dsl
71
71
  delta.migrate
72
- expect(subject.dump).to match_fuzzy dsl
72
+ expect(subject.dump).to match_ruby dsl
73
73
  }
74
74
  end
75
75
  end
@@ -51,7 +51,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
51
51
  expect(delta.differ?).to be_truthy
52
52
  expect(subject.dump).to match_fuzzy sorted_actual_dsl
53
53
  delta.migrate
54
- expect(subject.dump).to match_fuzzy expected_dsl
54
+ expect(subject.dump).to match_ruby expected_dsl
55
55
  }
56
56
  end
57
57
  end
@@ -24,20 +24,20 @@ describe 'Ridgepole::Client#diff -> migrate' do
24
24
  it {
25
25
  delta = subject.diff(expected_dsl)
26
26
  expect(delta.differ?).to be_truthy
27
- expect(subject.dump).to match_fuzzy actual_dsl
27
+ expect(subject.dump).to match_ruby actual_dsl
28
28
  delta.migrate
29
- expect(subject.dump).to match_fuzzy expected_dsl
29
+ expect(subject.dump).to match_ruby expected_dsl
30
30
  }
31
31
 
32
32
  it {
33
33
  delta = client(bulk_change: true, dump_with_default_fk_name: true).diff(expected_dsl)
34
34
  expect(delta.differ?).to be_truthy
35
- expect(subject.dump).to match_fuzzy actual_dsl
35
+ expect(subject.dump).to match_ruby actual_dsl
36
36
  expect(delta.script).to match_fuzzy <<-EOS
37
37
  add_foreign_key("child", "parent", {:name=>"fk_rails_e74ce85cbc"})
38
38
  EOS
39
39
  delta.migrate
40
- expect(subject.dump).to match_fuzzy expected_dsl
40
+ expect(subject.dump).to match_ruby expected_dsl
41
41
  }
42
42
  end
43
43
 
@@ -40,7 +40,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
40
40
  expect(delta.differ?).to be_truthy
41
41
  expect(subject.dump).to match_fuzzy sorted_actual_dsl
42
42
  delta.migrate
43
- expect(subject.dump).to match_fuzzy expected_dsl
43
+ expect(subject.dump).to match_ruby expected_dsl
44
44
  }
45
45
 
46
46
  it {
@@ -51,7 +51,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
51
51
  remove_foreign_key("child", {:name=>"fk_rails_e74ce85cbc"})
52
52
  EOS
53
53
  delta.migrate
54
- expect(subject.dump).to match_fuzzy expected_dsl
54
+ expect(subject.dump).to match_ruby expected_dsl
55
55
  }
56
56
  end
57
57
 
@@ -29,6 +29,13 @@ module SpecCondition
29
29
  ActiveRecord::VERSION::STRING =~ version_or_cond
30
30
  when Float
31
31
  ActiveRecord::VERSION::STRING.start_with?(version_or_cond.to_s)
32
+ when /\s+/
33
+ ar_version = Gem::Version.new(ActiveRecord::VERSION::STRING)
34
+
35
+ version_or_cond.split(',').all? do |ope_version|
36
+ ope, version = ope_version.strip.split(/\s+/, 2)
37
+ ar_version.send(ope, Gem::Version.new(version))
38
+ end
32
39
  when String
33
40
  ActiveRecord::VERSION::STRING.start_with?(version_or_cond)
34
41
  else
@@ -14,6 +14,7 @@ require 'open3'
14
14
  require 'tempfile'
15
15
  require 'json'
16
16
  require 'rspec/match_fuzzy'
17
+ require 'rspec/match_ruby'
17
18
  require 'erbh'
18
19
  require 'hash_modern_inspect'
19
20
  require 'hash_order_helper'
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.7.1
4
+ version: 0.7.2.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-16 00:00:00.000000000 Z
11
+ date: 2017-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -198,6 +198,20 @@ dependencies:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
200
  version: 0.1.6
201
+ - !ruby/object:Gem::Dependency
202
+ name: rspec-match_ruby
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: 0.1.3
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: 0.1.3
201
215
  description: Ridgepole is a tool to manage DB schema. It defines DB schema using Rails
202
216
  DSL, and updates DB schema according to DSL.
203
217
  email:
@@ -219,6 +233,7 @@ files:
219
233
  - docker-compose.yml
220
234
  - gemfiles/activerecord_5.0.gemfile
221
235
  - gemfiles/activerecord_5.1.gemfile
236
+ - gemfiles/activerecord_5.2.gemfile
222
237
  - lib/ridgepole.rb
223
238
  - lib/ridgepole/cli/config.rb
224
239
  - lib/ridgepole/client.rb
@@ -387,9 +402,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
387
402
  version: 2.2.7
388
403
  required_rubygems_version: !ruby/object:Gem::Requirement
389
404
  requirements:
390
- - - ">="
405
+ - - ">"
391
406
  - !ruby/object:Gem::Version
392
- version: '0'
407
+ version: 1.3.1
393
408
  requirements: []
394
409
  rubyforge_project:
395
410
  rubygems_version: 2.6.13