ridgepole 0.6.4.beta7 → 0.6.4.beta8
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.
- checksums.yaml +4 -4
- data/.travis.yml +8 -2
- data/README.md +1 -1
- data/lib/ridgepole/delta.rb +10 -7
- data/lib/ridgepole/version.rb +1 -1
- data/spec/mysql/fk/migrate_create_fk_spec.rb +11 -16
- metadata +24 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1ae2391d3c7bf2181214d399041cc5c0f60bbd2
|
4
|
+
data.tar.gz: 7ad90f10b0ad7048c4d239851e6817ab816a31b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17133898702087b8e861f19733ccb2635681ffe7947c2f6ad85182fd807df326642ee3d8eeb2bd2cb3520c0175d748230133088dd3ddeeff3a58b1f229ffa14f
|
7
|
+
data.tar.gz: ff545ea16b28593d1336cda7724cffc8df406b6cc2d86ed691cabf46cbeb10f97e712fa71b6f4975ba9240517746ff5b19eb6c279d607fca41e9f68db90cc0af
|
data/.travis.yml
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
|
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
|
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
|
data/lib/ridgepole/delta.rb
CHANGED
@@ -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,
|
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,
|
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)
|
data/lib/ridgepole/version.rb
CHANGED
@@ -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
|
-
|
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.
|
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-
|
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
|
-
-
|
135
|
-
-
|
136
|
-
-
|
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.
|
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.
|