ridgepole 0.7.1.beta2 → 0.7.1.beta3

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: 130a2d52ac418b8bfd080f5696072f1e6abd00b2
4
- data.tar.gz: 33ec9d8a72263cf6b7bcdcdc601e272d5dec616a
3
+ metadata.gz: 5a71e8eef1bd9b0c5cc4380f107084a563422b7d
4
+ data.tar.gz: 5ddebfde7e3f1402fa89e3e683649cee8f19f01f
5
5
  SHA512:
6
- metadata.gz: c5a60a3d8a64cd0110049c1ac599bbf326f61c968d3884a810229c294b9263ef8a02943c121b4d2bb71b4820759bbc4a4113900580b7b773cb53b1fdb21f8815
7
- data.tar.gz: 940bfaf02ac5a69c60c5081b522c6e02a7dc782826475ae64aba8977903adba4da4c1a556ba424f9cb2403c3e1d583f5269911886335fefd93a6aac808628a76
6
+ metadata.gz: 80da7be8ba5725b1e84d7a1a46d766d4e56fa1be89ccbe105b4ff298dc513db355b59c6847a59f4e3f6690c5e0fb4c9ac5113e74b58bc4af751a2b36ca907b77
7
+ data.tar.gz: 40a60f8c765b3fa48025fa8067d8258a0c173b117decf3518bbecc8575fba4fad87cb613eb55800c0618eead0dca17fa01b2ff3f74e523940a514d84d5e962b9
data/bin/ridgepole CHANGED
@@ -124,6 +124,7 @@ ARGV.options do |opt|
124
124
  opt.on('', '--check-relation-type DEF_PK') {|v| options[:check_relation_type] = v }
125
125
  opt.on('', '--ignore-table-comment') { options[:ignore_table_comment] = true }
126
126
  opt.on('', '--skip-column-comment-change') { options[:skip_column_comment_change] = true }
127
+ opt.on('', '--allow-pk-change') { options[:allow_pk_change] = true }
127
128
  opt.on('-r', '--require LIBS', Array) {|v| v.each {|i| require i } }
128
129
  opt.on('' , '--log-file LOG_FILE') {|v| options[:log_file] = v }
129
130
  opt.on('' , '--verbose') { Ridgepole::Logger.verbose = true }
@@ -284,14 +284,16 @@ execute "ALTER TABLE #{ActiveRecord::Base.connection.quote_table_name(table_name
284
284
 
285
285
  def append_change(table_name, attrs, buf, pre_buf_for_fk, post_buf_for_fk)
286
286
  definition = attrs[:definition] || {}
287
+ primary_key_definition = attrs[:primary_key_definition] || {}
287
288
  indices = attrs[:indices] || {}
288
289
  foreign_keys = attrs[:foreign_keys] || {}
289
290
  table_options = attrs[:table_options]
290
291
 
291
- if not definition.empty? or not indices.empty?
292
+ if not definition.empty? or not indices.empty? or not primary_key_definition.empty?
292
293
  append_change_table(table_name, buf) do
293
294
  append_delete_indices(table_name, indices, buf)
294
295
  append_change_definition(table_name, definition, buf)
296
+ append_change_definition(table_name, primary_key_definition, buf)
295
297
  append_add_indices(table_name, indices, buf)
296
298
  end
297
299
  end
@@ -1,4 +1,6 @@
1
1
  class Ridgepole::Diff
2
+ PRIMARY_KEY_OPTIONS = %i(id limit default null precision scale collation unsigned comment).freeze
3
+
2
4
  def initialize(options = {})
3
5
  @options = options
4
6
  @logger = Ridgepole::Logger.instance
@@ -126,6 +128,21 @@ class Ridgepole::Diff
126
128
  to.delete(:options)
127
129
  end
128
130
 
131
+ pk_attrs = build_primary_key_attrs_if_changed(from, to, table_name)
132
+ if pk_attrs
133
+ if @options[:allow_pk_change]
134
+ table_delta[:primary_key_definition] = {change: {id: pk_attrs}}
135
+ else
136
+ @logger.warn(<<-EOS)
137
+ [WARNING] Primary key definition of `#{table_name}` differ but `allow_pk_change` option is false
138
+ from: #{from.slice(*PRIMARY_KEY_OPTIONS)}
139
+ to: #{to.slice(*PRIMARY_KEY_OPTIONS)}
140
+ EOS
141
+ end
142
+ from = from.except(*PRIMARY_KEY_OPTIONS)
143
+ to = to.except(*PRIMARY_KEY_OPTIONS)
144
+ end
145
+
129
146
  unless from == to
130
147
  @logger.warn(<<-EOS)
131
148
  [WARNING] No difference of schema configuration for table `#{table_name}` but table options differ.
@@ -135,6 +152,39 @@ class Ridgepole::Diff
135
152
  end
136
153
  end
137
154
 
155
+ def convert_to_primary_key_attrs(column_options)
156
+ options = column_options.dup
157
+
158
+ if options[:id]
159
+ type = options.delete(:id)
160
+ else
161
+ type = Ridgepole::DSLParser::TableDefinition::DEFAULT_PRIMARY_KEY_TYPE
162
+ end
163
+
164
+ if [:integer, :bigint].include?(type) && !options.key?(:default)
165
+ options[:auto_increment] = true
166
+ end
167
+
168
+ {type: type, options: options}
169
+ end
170
+
171
+ def build_attrs_if_changed(to_attrs, from_attrs, table_name, primary_key: false)
172
+ normalize_column_options!(from_attrs, primary_key)
173
+ normalize_column_options!(to_attrs, primary_key)
174
+
175
+ unless compare_column_attrs(from_attrs, to_attrs)
176
+ new_to_attrs = fix_change_column_options(table_name, from_attrs, to_attrs)
177
+ end
178
+ new_to_attrs
179
+ end
180
+
181
+ def build_primary_key_attrs_if_changed(from, to, table_name)
182
+ from_column_attrs = convert_to_primary_key_attrs(from.slice(*PRIMARY_KEY_OPTIONS))
183
+ to_column_attrs = convert_to_primary_key_attrs(to.slice(*PRIMARY_KEY_OPTIONS))
184
+ return if from_column_attrs == to_column_attrs
185
+ build_attrs_if_changed(to_column_attrs, from_column_attrs, table_name, primary_key: true)
186
+ end
187
+
138
188
  def scan_definition_change(from, to, from_indices, table_name, table_options, table_delta)
139
189
  from = (from || {}).dup
140
190
  to = (to || {}).dup
@@ -150,12 +200,9 @@ class Ridgepole::Diff
150
200
 
151
201
  to.each do |column_name, to_attrs|
152
202
  if (from_attrs = from.delete(column_name))
153
- normalize_column_options!(from_attrs)
154
- normalize_column_options!(to_attrs)
155
-
156
- unless compare_column_attrs(from_attrs, to_attrs)
203
+ to_attrs = build_attrs_if_changed(to_attrs, from_attrs, table_name)
204
+ if to_attrs
157
205
  definition_delta[:change] ||= {}
158
- to_attrs = fix_change_column_options(table_name, from_attrs, to_attrs)
159
206
  definition_delta[:change][column_name] = to_attrs
160
207
  end
161
208
  else
@@ -304,14 +351,14 @@ class Ridgepole::Diff
304
351
  end
305
352
  end
306
353
 
307
- def normalize_column_options!(attrs)
354
+ def normalize_column_options!(attrs, primary_key = false)
308
355
  opts = attrs[:options]
309
- opts[:null] = true unless opts.has_key?(:null)
356
+ opts[:null] = true if not opts.has_key?(:null) and not primary_key
310
357
  default_limit = Ridgepole::DefaultsLimit.default_limit(attrs[:type], @options)
311
358
  opts.delete(:limit) if opts[:limit] == default_limit
312
359
 
313
360
  # XXX: MySQL only?
314
- if not opts.has_key?(:default)
361
+ if not opts.has_key?(:default) and not primary_key
315
362
  opts[:default] = nil
316
363
  end
317
364
 
@@ -17,6 +17,8 @@ class Ridgepole::DSLParser
17
17
  }
18
18
  end
19
19
 
20
+ DEFAULT_PRIMARY_KEY_TYPE = Gem::Version.new(ActiveRecord::VERSION::STRING) >= Gem::Version.new('5.1') ? :bigint : :integer
21
+
20
22
  TYPES = [
21
23
  # https://github.com/rails/rails/blob/v4.2.1/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb#L274
22
24
  :string,
@@ -121,15 +123,15 @@ class Ridgepole::DSLParser
121
123
  def references(*args)
122
124
  options = args.extract_options!
123
125
  polymorphic = options.delete(:polymorphic)
124
- index_options = options.delete(:index)
125
- type = options.delete(:type) || :integer
126
+ index_options = options.has_key?(:index) ? options.delete(:index) : true
127
+ type = options.delete(:type) || DEFAULT_PRIMARY_KEY_TYPE
126
128
 
127
129
  args.each do |col|
128
130
  column("#{col}_id", type, options)
129
131
  column("#{col}_type", :string, polymorphic.is_a?(Hash) ? polymorphic : options) if polymorphic
130
132
  if index_options
131
- index("#{col}_id", index_options.is_a?(Hash) ? index_options : {})
132
- index("#{col}_type", index_options.is_a?(Hash) ? index_options : {}) if polymorphic
133
+ columns = polymorphic ? ["#{col}_type", "#{col}_id"] : ["#{col}_id"]
134
+ index(columns, index_options.is_a?(Hash) ? index_options : {})
133
135
  end
134
136
  end
135
137
  end
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.7.1.beta2'
2
+ VERSION = '0.7.1.beta3'
3
3
  end
@@ -49,6 +49,7 @@ describe 'ridgepole' do
49
49
  --check-relation-type DEF_PK
50
50
  --ignore-table-comment
51
51
  --skip-column-comment-change
52
+ --allow-pk-change
52
53
  -r, --require LIBS
53
54
  --log-file LOG_FILE
54
55
  --verbose
@@ -90,15 +90,17 @@ describe 'Ridgepole::Client#diff -> migrate' do
90
90
 
91
91
  context 'when use references (no change)' do
92
92
  let(:actual_dsl) {
93
- <<-EOS
93
+ erbh(<<-EOS)
94
94
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
95
- t.date "birth_date", null: false
96
- t.string "first_name", limit: 14, null: false
97
- t.string "last_name", limit: 16, null: false
98
- t.string "gender", limit: 1, null: false
99
- t.date "hire_date", null: false
100
- t.integer "products_id"
101
- t.integer "user_id"
95
+ t.date "birth_date", null: false
96
+ t.string "first_name", limit: 14, null: false
97
+ t.string "last_name", limit: 16, null: false
98
+ t.string "gender", limit: 1, null: false
99
+ t.date "hire_date", null: false
100
+ t.<%= cond(5.1, 'bigint', 'integer') %> "products_id"
101
+ t.<%= cond(5.1, 'bigint', 'integer') %> "user_id"
102
+ t.index "products_id"
103
+ t.index "user_id"
102
104
  end
103
105
  EOS
104
106
  }
@@ -127,17 +129,19 @@ describe 'Ridgepole::Client#diff -> migrate' do
127
129
 
128
130
  context 'when use references with polymorphic (no change)' do
129
131
  let(:actual_dsl) {
130
- <<-EOS
132
+ erbh(<<-EOS)
131
133
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
132
- t.date "birth_date", null: false
133
- t.string "first_name", limit: 14, null: false
134
- t.string "last_name", limit: 16, null: false
135
- t.string "gender", limit: 1, null: false
136
- t.date "hire_date", null: false
137
- t.integer "products_id"
138
- t.string "products_type"
139
- t.integer "user_id"
140
- t.string "user_type"
134
+ t.date "birth_date", null: false
135
+ t.string "first_name", limit: 14, null: false
136
+ t.string "last_name", limit: 16, null: false
137
+ t.string "gender", limit: 1, null: false
138
+ t.date "hire_date", null: false
139
+ t.<%= cond(5.1, 'bigint', 'integer') %> "products_id"
140
+ t.string "products_type"
141
+ t.<%= cond(5.1, 'bigint', 'integer') %> "user_id"
142
+ t.string "user_type"
143
+ t.index ["products_type", "products_id"]
144
+ t.index ["user_type", "user_id"]
141
145
  end
142
146
  EOS
143
147
  }
@@ -193,13 +197,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
193
197
  let(:expected_dsl) {
194
198
  erbh(<<-EOS)
195
199
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
196
- t.date "birth_date", null: false
197
- t.string "first_name", limit: 14, null: false
198
- t.string "last_name", limit: 16, null: false
199
- t.string "gender", limit: 1, null: false
200
- t.date "hire_date", null: false
201
- t.integer "products_id"
202
- t.integer "user_id"
200
+ t.date "birth_date", null: false
201
+ t.string "first_name", limit: 14, null: false
202
+ t.string "last_name", limit: 16, null: false
203
+ t.string "gender", limit: 1, null: false
204
+ t.date "hire_date", null: false
205
+ t.<%= cond(5.1, 'bigint', 'integer') %> "products_id"
206
+ t.<%= cond(5.1, 'bigint', 'integer') %> "user_id"
207
+ t.index ["products_id"], name: "index_employees_on_products_id", <%= i cond(5.0, using: :btree) %>
208
+ t.index ["user_id"], name: "index_employees_on_user_id", <%= i cond(5.0, using: :btree) %>
203
209
  end
204
210
  EOS
205
211
  }
@@ -245,15 +251,17 @@ describe 'Ridgepole::Client#diff -> migrate' do
245
251
  let(:expected_dsl) {
246
252
  erbh(<<-EOS)
247
253
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
248
- t.date "birth_date", null: false
249
- t.string "first_name", limit: 14, null: false
250
- t.string "last_name", limit: 16, null: false
251
- t.string "gender", limit: 1, null: false
252
- t.date "hire_date", null: false
253
- t.integer "products_id"
254
- t.string "products_type"
255
- t.integer "user_id"
256
- t.string "user_type"
254
+ t.date "birth_date", null: false
255
+ t.string "first_name", limit: 14, null: false
256
+ t.string "last_name", limit: 16, null: false
257
+ t.string "gender", limit: 1, null: false
258
+ t.date "hire_date", null: false
259
+ t.<%= cond(5.1, 'bigint', 'integer') %> "products_id"
260
+ t.string "products_type"
261
+ t.<%= cond(5.1, 'bigint', 'integer') %> "user_id"
262
+ t.string "user_type"
263
+ t.index ["products_type", "products_id"], name: "index_employees_on_products_type_and_products_id", <%= i cond(5.0, using: :btree) %>
264
+ t.index ["user_type", "user_id"], name: "index_employees_on_user_type_and_user_id", <%= i cond(5.0, using: :btree) %>
257
265
  end
258
266
  EOS
259
267
  }
@@ -0,0 +1,57 @@
1
+ describe 'Ridgepole::Client#diff -> migrate' do
2
+ let(:actual_dsl) {
3
+ erbh(<<-EOS)
4
+ create_table "employees", id: :integer, unsigned: true, force: :cascade do |t|
5
+ end
6
+ EOS
7
+ }
8
+
9
+ before { subject.diff(actual_dsl).migrate }
10
+ subject { client(allow_pk_change: allow_pk_change) }
11
+
12
+ context 'when allow_pk_change option is false' do
13
+ let(:allow_pk_change) { false }
14
+ let(:expected_dsl) {
15
+ erbh(<<-EOS)
16
+ create_table "employees", id: :bigint, unsigned: true, force: :cascade do |t|
17
+ end
18
+ EOS
19
+ }
20
+
21
+ it {
22
+ expect(Ridgepole::Logger.instance).to receive(:warn).with(<<-EOS)
23
+ [WARNING] Primary key definition of `employees` differ but `allow_pk_change` option is false
24
+ from: {:id=>:integer, :unsigned=>true}
25
+ to: {:id=>:bigint, :unsigned=>true}
26
+ EOS
27
+
28
+ delta = subject.diff(expected_dsl)
29
+ expect(delta.differ?).to be_falsey
30
+ delta.migrate
31
+ expect(subject.dump).to match_fuzzy actual_dsl
32
+ }
33
+ end
34
+
35
+ context 'when allow_pk_change option is false' do
36
+ let(:allow_pk_change) { true }
37
+ let(:expected_dsl) {
38
+ erbh(<<-EOS)
39
+ create_table "employees", id: :bigint, unsigned: true, force: :cascade do |t|
40
+ end
41
+
42
+ create_table "salaries", force: :cascade do |t|
43
+ t.bigint "employee_id", null: false, unsigned: true
44
+ t.index ["employee_id"], name: "fk_salaries_employees", <%= i cond(5.0, using: :btree) %>
45
+ end
46
+ add_foreign_key "salaries", "employees", name: "fk_salaries_employees"
47
+ EOS
48
+ }
49
+
50
+ it {
51
+ delta = subject.diff(expected_dsl)
52
+ expect(delta.differ?).to be_truthy
53
+ delta.migrate
54
+ expect(subject.dump).to match_fuzzy expected_dsl
55
+ }
56
+ end
57
+ end
@@ -53,7 +53,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
53
53
  }
54
54
  end
55
55
 
56
- context 'when migrate table with default proc' do
56
+ context 'when migrate table with default proc change' do
57
57
  let(:actual_dsl) {
58
58
  erbh(<<-EOS)
59
59
  create_table "users", id: :uuid, default: -> { "uuid_generate_v1()" }, force: :cascade do |t|
@@ -75,20 +75,36 @@ describe 'Ridgepole::Client#diff -> migrate' do
75
75
  }
76
76
 
77
77
  before { subject.diff(actual_dsl).migrate }
78
- subject { client }
78
+ subject { client(allow_pk_change: allow_pk_change) }
79
79
 
80
- it {
81
- expect(Ridgepole::Logger.instance).to receive(:warn).with(<<-EOS)
82
- [WARNING] No difference of schema configuration for table `users` but table options differ.
80
+ context 'when allow_pk_change option is false' do
81
+ let(:allow_pk_change) { false }
82
+
83
+ it {
84
+ expect(Ridgepole::Logger.instance).to receive(:warn).with(<<-EOS)
85
+ [WARNING] Primary key definition of `users` differ but `allow_pk_change` option is false
83
86
  from: {:id=>:uuid, :default=>"uuid_generate_v1()"}
84
87
  to: {:id=>:uuid, :default=>"uuid_generate_v4()"}
85
- EOS
88
+ EOS
86
89
 
87
- delta = subject.diff(expected_dsl)
88
- expect(delta.differ?).to be_falsey
89
- expect(subject.dump).to match_fuzzy actual_dsl
90
- delta.migrate
91
- expect(subject.dump).to match_fuzzy actual_dsl
92
- }
90
+ delta = subject.diff(expected_dsl)
91
+ expect(delta.differ?).to be_falsey
92
+ expect(subject.dump).to match_fuzzy actual_dsl
93
+ delta.migrate
94
+ expect(subject.dump).to match_fuzzy actual_dsl
95
+ }
96
+ end
97
+
98
+ context 'when allow_pk_change option is true' do
99
+ let(:allow_pk_change) { true }
100
+
101
+ it {
102
+ delta = subject.diff(expected_dsl)
103
+ expect(delta.differ?).to be_truthy
104
+ expect(subject.dump).to match_fuzzy actual_dsl
105
+ delta.migrate
106
+ expect(subject.dump).to match_fuzzy expected_dsl
107
+ }
108
+ end
93
109
  end
94
110
  end
@@ -0,0 +1,88 @@
1
+ describe 'Ridgepole::Client#diff -> migrate' do
2
+ context 'when use references (no change)' do
3
+ let(:actual_dsl) {
4
+ erbh(<<-EOS)
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"
8
+ t.index "products_id"
9
+ t.index "user_id"
10
+ end
11
+ EOS
12
+ }
13
+
14
+ let(:expected_dsl) {
15
+ <<-EOS
16
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
17
+ t.references :products, :user, index: true
18
+ end
19
+ EOS
20
+ }
21
+
22
+ before { subject.diff(actual_dsl).migrate }
23
+ subject { client }
24
+
25
+ it {
26
+ delta = subject.diff(expected_dsl)
27
+ expect(delta.differ?).to be_falsey
28
+ }
29
+ end
30
+
31
+ context 'when use references with polymorphic (no change)' do
32
+ let(:actual_dsl) {
33
+ erbh(<<-EOS)
34
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
35
+ t.<%= cond(5.1, 'bigint', 'integer') %> "products_id"
36
+ t.string "products_type"
37
+ t.<%= cond(5.1, 'bigint', 'integer') %> "user_id"
38
+ t.string "user_type"
39
+ t.index ["products_type", "products_id"]
40
+ t.index ["user_type", "user_id"]
41
+ end
42
+ EOS
43
+ }
44
+
45
+ let(:expected_dsl) {
46
+ <<-EOS
47
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
48
+ t.references :products, :user, index: true, polymorphic: true
49
+ end
50
+ EOS
51
+ }
52
+
53
+ before { subject.diff(actual_dsl).migrate }
54
+ subject { client }
55
+
56
+ it {
57
+ delta = subject.diff(expected_dsl)
58
+ expect(delta.differ?).to be_falsey
59
+ }
60
+ end
61
+
62
+ context 'when use references with index false (no change)' do
63
+ let(:actual_dsl) {
64
+ erbh(<<-EOS)
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"
68
+ end
69
+ EOS
70
+ }
71
+
72
+ let(:expected_dsl) {
73
+ <<-EOS
74
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
75
+ t.references :products, :user, index: false
76
+ end
77
+ EOS
78
+ }
79
+
80
+ before { subject.diff(actual_dsl).migrate }
81
+ subject { client }
82
+
83
+ it {
84
+ delta = subject.diff(expected_dsl)
85
+ expect(delta.differ?).to be_falsey
86
+ }
87
+ end
88
+ end
data/spec/spec_const.rb CHANGED
@@ -1,11 +1,11 @@
1
- TEST_MYSQL_HOST = '127.0.0.1'
1
+ TEST_MYSQL_HOST = ENV['DOCKER_HOST'] ? ENV['DOCKER_HOST'].gsub(%r{\Atcp://|:\d+\z}, '') : '127.0.0.1'
2
2
  TEST_MYSQL_PORT = ENV['MYSQL57'] == '1' ? 13317 : 13316
3
3
  TEST_MYSQL_USER = 'root'
4
4
  TEST_MYSQL_PASS = 'password'
5
5
 
6
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
- TEST_PG_HOST = '127.0.0.1'
8
+ TEST_PG_HOST = ENV['DOCKER_HOST'] ? ENV['DOCKER_HOST'].gsub(%r{\Atcp://|:\d+\z}, '') : '127.0.0.1'
9
9
  TEST_PG_PORT = 15442
10
10
  TEST_PG_USER = 'postgres'
11
11
  TEST_PG_PASS = 'password'
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.beta2
4
+ version: 0.7.1.beta3
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-08-10 00:00:00.000000000 Z
11
+ date: 2017-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -307,6 +307,7 @@ files:
307
307
  - spec/mysql/migrate/migrate_log_file_spec.rb
308
308
  - spec/mysql/migrate/migrate_merge_mode_spec.rb
309
309
  - spec/mysql/migrate/migrate_noop_spec.rb
310
+ - spec/mysql/migrate/migrate_primary_key_spec.rb
310
311
  - spec/mysql/migrate/migrate_rename_column_spec.rb
311
312
  - spec/mysql/migrate/migrate_rename_table_spec.rb
312
313
  - spec/mysql/migrate/migrate_same_default_null_spec.rb
@@ -355,6 +356,7 @@ files:
355
356
  - spec/postgresql/migrate/migrate_drop_index_spec.rb
356
357
  - spec/postgresql/migrate/migrate_drop_table_spec.rb
357
358
  - spec/postgresql/migrate/migrate_ext_cols_spec.rb
359
+ - spec/postgresql/migrate/migrate_references_spec.rb
358
360
  - spec/postgresql/migrate/migrate_rename_column_spec.rb
359
361
  - spec/postgresql/migrate/migrate_rename_table_spec.rb
360
362
  - spec/postgresql/migrate/migrate_same_spec.rb
@@ -387,7 +389,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
387
389
  version: 1.3.1
388
390
  requirements: []
389
391
  rubyforge_project:
390
- rubygems_version: 2.6.12
392
+ rubygems_version: 2.5.2
391
393
  signing_key:
392
394
  specification_version: 4
393
395
  summary: Ridgepole is a tool to manage DB schema.
@@ -457,6 +459,7 @@ test_files:
457
459
  - spec/mysql/migrate/migrate_log_file_spec.rb
458
460
  - spec/mysql/migrate/migrate_merge_mode_spec.rb
459
461
  - spec/mysql/migrate/migrate_noop_spec.rb
462
+ - spec/mysql/migrate/migrate_primary_key_spec.rb
460
463
  - spec/mysql/migrate/migrate_rename_column_spec.rb
461
464
  - spec/mysql/migrate/migrate_rename_table_spec.rb
462
465
  - spec/mysql/migrate/migrate_same_default_null_spec.rb
@@ -505,6 +508,7 @@ test_files:
505
508
  - spec/postgresql/migrate/migrate_drop_index_spec.rb
506
509
  - spec/postgresql/migrate/migrate_drop_table_spec.rb
507
510
  - spec/postgresql/migrate/migrate_ext_cols_spec.rb
511
+ - spec/postgresql/migrate/migrate_references_spec.rb
508
512
  - spec/postgresql/migrate/migrate_rename_column_spec.rb
509
513
  - spec/postgresql/migrate/migrate_rename_table_spec.rb
510
514
  - spec/postgresql/migrate/migrate_same_spec.rb