ridgepole 0.6.4.beta7 → 0.6.4.beta8

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: c85f4b8fba0204ab640ff42e01840aaac4c20c5f
4
- data.tar.gz: 845a7fb75b36c131cb50c8bcfcef07337d3bf1b8
3
+ metadata.gz: c1ae2391d3c7bf2181214d399041cc5c0f60bbd2
4
+ data.tar.gz: 7ad90f10b0ad7048c4d239851e6817ab816a31b5
5
5
  SHA512:
6
- metadata.gz: 983d3bcb1fe098093d15e5534ae8527754526c8e38d0b005960c5437a15b5a33abcf78cdc92ad0ed42ae55d203b041448321c67ed762be554078b901d76c2a6b
7
- data.tar.gz: 4c9746ef67883ddd8aa34ff9f631da579b38f0ec0fc3aa4316d67cba94cd3c44cf9a37fa5a9226d94b700982de921722a89dfc5f035b76414634aa9336cf2e90
6
+ metadata.gz: 17133898702087b8e861f19733ccb2635681ffe7947c2f6ad85182fd807df326642ee3d8eeb2bd2cb3520c0175d748230133088dd3ddeeff3a58b1f229ffa14f
7
+ data.tar.gz: ff545ea16b28593d1336cda7724cffc8df406b6cc2d86ed691cabf46cbeb10f97e712fa71b6f4975ba9240517746ff5b19eb6c279d607fca41e9f68db90cc0af
data/.travis.yml CHANGED
@@ -1,4 +1,5 @@
1
- sudo: false
1
+ dist: trusty
2
+ sudo: required
2
3
  language: ruby
3
4
  cache: bundler
4
5
  rvm:
@@ -7,7 +8,7 @@ rvm:
7
8
  - 2.2.4
8
9
  - 2.3.0
9
10
  before_install:
10
- - gem update bundler
11
+ - gem install bundler
11
12
  script:
12
13
  - bundle install
13
14
  - bundle exec rake
@@ -18,3 +19,8 @@ env:
18
19
  - POSTGRESQL=1
19
20
  addons:
20
21
  postgresql: "9.4"
22
+ apt:
23
+ packages:
24
+ - mysql-server-5.6
25
+ - mysql-client-core-5.6
26
+ - mysql-client-5.6
data/README.md CHANGED
@@ -49,6 +49,7 @@ It defines DB schema using [Rails DSL](http://guides.rubyonrails.org/migrations.
49
49
  * Add `--dump-with-default-fk-name` option
50
50
  * Support `t.index` ([pull#64](https://github.com/winebarrel/ridgepole/pull/64))
51
51
  * Remove migration_comments
52
+ * Fix foreign key apply order
52
53
 
53
54
  ## Installation
54
55
 
@@ -99,7 +100,6 @@ Usage: ridgepole [options]
99
100
  --dump-without-table-options
100
101
  --dump-with-default-fk-name
101
102
  --index-removed-drop-column
102
- --enable-migration-comments
103
103
  -r, --require LIBS
104
104
  --log-file LOG_FILE
105
105
  --verbose
@@ -22,9 +22,10 @@ class Ridgepole::Delta
22
22
 
23
23
  def script
24
24
  buf = StringIO.new
25
+ buf_for_fk = StringIO.new
25
26
 
26
27
  (@delta[:add] || {}).each do |table_name, attrs|
27
- append_create_table(table_name, attrs, buf)
28
+ append_create_table(table_name, attrs, buf, buf_for_fk)
28
29
  end
29
30
 
30
31
  (@delta[:rename] || {}).each do |table_name, attrs|
@@ -32,14 +33,14 @@ class Ridgepole::Delta
32
33
  end
33
34
 
34
35
  (@delta[:change] || {}).each do |table_name, attrs|
35
- append_change(table_name, attrs, buf)
36
+ append_change(table_name, attrs, buf, buf_for_fk)
36
37
  end
37
38
 
38
39
  (@delta[:delete] || {}).each do |table_name, attrs|
39
40
  append_drop_table(table_name, attrs, buf)
40
41
  end
41
42
 
42
- buf.string.strip
43
+ (buf.string.strip + "\n\n" + buf_for_fk.string.strip).strip
43
44
  end
44
45
 
45
46
  def differ?
@@ -210,7 +211,7 @@ class Ridgepole::Delta
210
211
  end
211
212
  end
212
213
 
213
- def append_create_table(table_name, attrs, buf)
214
+ def append_create_table(table_name, attrs, buf, buf_for_fk)
214
215
  options = attrs[:options] || {}
215
216
  options[:options] ||= @options[:table_options] if @options[:table_options]
216
217
  definition = attrs[:definition] || {}
@@ -244,11 +245,12 @@ end
244
245
 
245
246
  unless (foreign_keys = attrs[:foreign_keys] || {}).empty?
246
247
  foreign_keys.each do |foreign_key_name, foreign_key_attrs|
247
- append_add_foreign_key(table_name, foreign_key_name, foreign_key_attrs, buf, @options)
248
+ append_add_foreign_key(table_name, foreign_key_name, foreign_key_attrs, buf_for_fk, @options)
248
249
  end
249
250
  end
250
251
 
251
252
  buf.puts
253
+ buf_for_fk.puts
252
254
  end
253
255
 
254
256
  def append_rename_table(to_table_name, from_table_name, buf)
@@ -267,7 +269,7 @@ drop_table(#{table_name.inspect})
267
269
  buf.puts
268
270
  end
269
271
 
270
- def append_change(table_name, attrs, buf)
272
+ def append_change(table_name, attrs, buf, buf_for_fk)
271
273
  definition = attrs[:definition] || {}
272
274
  indices = attrs[:indices] || {}
273
275
  foreign_keys = attrs[:foreign_keys] || {}
@@ -280,10 +282,11 @@ drop_table(#{table_name.inspect})
280
282
  end
281
283
 
282
284
  unless foreign_keys.empty?
283
- append_change_foreign_keys(table_name, foreign_keys, buf, @options)
285
+ append_change_foreign_keys(table_name, foreign_keys, buf_for_fk, @options)
284
286
  end
285
287
 
286
288
  buf.puts
289
+ buf_for_fk.puts
287
290
  end
288
291
 
289
292
  def append_change_table(table_name, buf)
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.6.4.beta7'
2
+ VERSION = '0.6.4.beta8'
3
3
  end
@@ -55,10 +55,6 @@ add_foreign_key "child", "parent", name: "child_ibfk_1"
55
55
  context 'when create fk when create table' do
56
56
  let(:dsl) {
57
57
  <<-RUBY
58
- # Define parent before child
59
- create_table "parent", force: :cascade do |t|
60
- end
61
-
62
58
  create_table "child", force: :cascade do |t|
63
59
  t.integer "parent_id"
64
60
  end
@@ -66,12 +62,14 @@ end
66
62
  add_index "child", ["parent_id"], name: "par_id", using: :btree
67
63
 
68
64
  add_foreign_key "child", "parent", name: "child_ibfk_1"
65
+
66
+ create_table "parent", force: :cascade do |t|
67
+ end
69
68
  RUBY
70
69
  }
71
70
 
72
71
  let(:sorted_dsl) {
73
72
  <<-RUBY
74
-
75
73
  create_table "child", force: :cascade do |t|
76
74
  t.integer "parent_id", limit: 4
77
75
  end
@@ -99,10 +97,6 @@ add_foreign_key "child", "parent", name: "child_ibfk_1"
99
97
  context 'already defined' do
100
98
  let(:dsl) {
101
99
  <<-RUBY
102
- # Define parent before child
103
- create_table "parent", force: :cascade do |t|
104
- end
105
-
106
100
  create_table "child", force: :cascade do |t|
107
101
  t.integer "parent_id", unsigned: true
108
102
  end
@@ -112,6 +106,9 @@ add_index "child", ["parent_id"], name: "par_id", using: :btree
112
106
  add_foreign_key "child", "parent", name: "child_ibfk_1"
113
107
 
114
108
  add_foreign_key "child", "parent", name: "child_ibfk_1"
109
+
110
+ create_table "parent", force: :cascade do |t|
111
+ end
115
112
  RUBY
116
113
  }
117
114
 
@@ -127,10 +124,6 @@ add_foreign_key "child", "parent", name: "child_ibfk_1"
127
124
  context 'no name' do
128
125
  let(:dsl) {
129
126
  <<-RUBY
130
- # Define parent before child
131
- create_table "parent", force: :cascade do |t|
132
- end
133
-
134
127
  create_table "child", force: :cascade do |t|
135
128
  t.integer "parent_id", unsigned: true
136
129
  end
@@ -138,6 +131,9 @@ end
138
131
  add_index "child", ["parent_id"], name: "par_id", using: :btree
139
132
 
140
133
  add_foreign_key "child", "parent"
134
+
135
+ create_table "parent", force: :cascade do |t|
136
+ end
141
137
  RUBY
142
138
  }
143
139
 
@@ -153,11 +149,10 @@ add_foreign_key "child", "parent"
153
149
  context 'orphan fk' do
154
150
  let(:dsl) {
155
151
  <<-RUBY
156
- # Define parent before child
152
+ add_foreign_key "child", "parent", name: "child_ibfk_1"
153
+
157
154
  create_table "parent", force: :cascade do |t|
158
155
  end
159
-
160
- add_foreign_key "child", "parent", name: "child_ibfk_1"
161
156
  RUBY
162
157
  }
163
158
 
metadata CHANGED
@@ -1,125 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4.beta7
4
+ version: 0.6.4.beta8
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-02-04 00:00:00.000000000 Z
11
+ date: 2016-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: 4.2.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 4.2.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 3.0.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.0.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mysql2
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.3.20
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.3.20
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pg
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: coveralls
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: activerecord-mysql-awesome
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: 0.0.7
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: 0.0.7
125
125
  description: Ridgepole is a tool to manage DB schema. It defines DB schema using Rails
@@ -131,9 +131,9 @@ executables:
131
131
  extensions: []
132
132
  extra_rdoc_files: []
133
133
  files:
134
- - ".gitignore"
135
- - ".rspec"
136
- - ".travis.yml"
134
+ - .gitignore
135
+ - .rspec
136
+ - .travis.yml
137
137
  - Gemfile
138
138
  - LICENSE.txt
139
139
  - README.md
@@ -258,17 +258,17 @@ require_paths:
258
258
  - lib
259
259
  required_ruby_version: !ruby/object:Gem::Requirement
260
260
  requirements:
261
- - - ">="
261
+ - - '>='
262
262
  - !ruby/object:Gem::Version
263
263
  version: '0'
264
264
  required_rubygems_version: !ruby/object:Gem::Requirement
265
265
  requirements:
266
- - - ">"
266
+ - - '>'
267
267
  - !ruby/object:Gem::Version
268
268
  version: 1.3.1
269
269
  requirements: []
270
270
  rubyforge_project:
271
- rubygems_version: 2.4.5.1
271
+ rubygems_version: 2.0.14.1
272
272
  signing_key:
273
273
  specification_version: 4
274
274
  summary: Ridgepole is a tool to manage DB schema.