ridgepole 0.7.1 → 0.7.2.beta

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