ridgepole 0.6.4.beta2 → 0.6.4.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: 10801582c0052e986aa30e7b154351eeaa554f15
4
- data.tar.gz: 1e65cf886879c7b82f5a43db621b0862a1dcec54
3
+ metadata.gz: f85451f0471e23a2e57b9c3ef3ea2c583d9aa0ed
4
+ data.tar.gz: 386a09bc2f304e3ae2d8f6732e58357d5c1dc192
5
5
  SHA512:
6
- metadata.gz: 12bdbd42911da4a0a198649aaea81b5f96531f335b5fcabd27895cb455cf0def8eed4ee2d2d73cd2d9151449fe748d8b48e326c2e78687c18a8aec86a7cd2c0b
7
- data.tar.gz: be1ce63bf98dc8251aac7143743a357b03154f2d82f24db0d6f5833c02a431a29a604dc91d78cfb93f7bb3e3df7e371eb8475480ee8142cfacc737af6af767e5
6
+ metadata.gz: 6dd3c94d9e6bcd6ffa6e8bda9b60fa6241ac4c08660123a2c1f14d2fb04c39690f7dd8665fc1b9ca5565fb342e15d0df7d8126e8650b563c23ac133ac753e7b9
7
+ data.tar.gz: fa8c06f2e4b859325d3d45676ee20ef7588a9c4c02d9d08fd39a018e36a0458ea39ff5e54d791b0fe206e44c4aa09bb6a6695d2fc93ea6ec6ad9f410b80e7f1c
data/README.md CHANGED
@@ -275,11 +275,41 @@ remove_column("articles", "author")
275
275
  ```sh
276
276
  $ cat test.sh
277
277
  #!/bin/sh
278
- echo "$1" | mysql -u root my_db
278
+ SQL="$1"
279
+ CONFIG_JSON="$2"
280
+ echo "$SQL" | mysql -u root my_db
279
281
 
280
282
  $ ridgepole -c config.yml --apply --external-script ./test.sh
281
283
  ```
282
284
 
285
+ ## Add extra statement to ALTER
286
+
287
+ ```sh
288
+ $ ridgepole -a -c database.yml --alter-extra="LOCK=NONE" --debug
289
+ Apply `Schemafile`
290
+ ...
291
+ -- add_column("dept_manager", "to_date2", :date, {:null=>false, :after=>"from_date"})
292
+ (42.2ms) ALTER TABLE `dept_manager` ADD `to_date2` date NOT NULL AFTER `from_date`,LOCK=NONE
293
+ -> 0.0428s
294
+ -- remove_column("dept_manager", "to_date")
295
+ (46.9ms) ALTER TABLE `dept_manager` DROP `to_date`,LOCK=NONE
296
+ -> 0.0471s
297
+ ```
298
+
299
+ ## Use ALTER instead of CREATE/DROP INDEX
300
+
301
+ ```sh
302
+ $ ridgepole -a -c database.yml --mysql-use-alter --debug
303
+ Apply `Schemafile`
304
+ ...
305
+ -- remove_index("dept_manager", {:name=>"emp_no"})
306
+ (19.2ms) ALTER TABLE `dept_manager` DROP INDEX `emp_no`,LOCK=NONE
307
+ -> 0.0200s
308
+ -- add_index("dept_manager", ["emp_no"], {:name=>"emp_no2", :using=>:btree})
309
+ (23.4ms) ALTER TABLE `dept_manager` ADD INDEX `emp_no2` USING btree (`emp_no`),LOCK=NONE
310
+ -> 0.0243s
311
+ ```
312
+
283
313
  ## Demo
284
314
 
285
315
  * [asciinema.org/a/9349](https://asciinema.org/a/9349)
@@ -5,8 +5,8 @@ class Ridgepole::ExternalSqlExecuter
5
5
  end
6
6
 
7
7
  def execute(sql)
8
- cmd = Shellwords.join([@script, sql])
9
- @logger.info("Execute #{cmd}")
8
+ cmd = Shellwords.join([@script, sql, JSON.dump(ActiveRecord::Base.connection_config)])
9
+ @logger.info("Execute #{@script}")
10
10
 
11
11
  out, err, status = Open3.capture3(cmd)
12
12
  out.strip!
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.6.4.beta2'
2
+ VERSION = '0.6.4.beta3'
3
3
  end
metadata CHANGED
@@ -1,139 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4.beta2
4
+ version: 0.6.4.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: 2015-11-20 00:00:00.000000000 Z
11
+ date: 2015-12-01 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
  - !ruby/object:Gem::Dependency
126
126
  name: migration_comments
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  description: Ridgepole is a tool to manage DB schema. It defines DB schema using Rails
@@ -145,9 +145,9 @@ executables:
145
145
  extensions: []
146
146
  extra_rdoc_files: []
147
147
  files:
148
- - .gitignore
149
- - .rspec
150
- - .travis.yml
148
+ - ".gitignore"
149
+ - ".rspec"
150
+ - ".travis.yml"
151
151
  - Gemfile
152
152
  - LICENSE.txt
153
153
  - README.md
@@ -266,17 +266,17 @@ require_paths:
266
266
  - lib
267
267
  required_ruby_version: !ruby/object:Gem::Requirement
268
268
  requirements:
269
- - - '>='
269
+ - - ">="
270
270
  - !ruby/object:Gem::Version
271
271
  version: '0'
272
272
  required_rubygems_version: !ruby/object:Gem::Requirement
273
273
  requirements:
274
- - - '>'
274
+ - - ">"
275
275
  - !ruby/object:Gem::Version
276
276
  version: 1.3.1
277
277
  requirements: []
278
278
  rubyforge_project:
279
- rubygems_version: 2.4.8
279
+ rubygems_version: 2.4.5
280
280
  signing_key:
281
281
  specification_version: 4
282
282
  summary: Ridgepole is a tool to manage DB schema.