ridgepole 0.6.5.beta2 → 0.6.5.beta3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5175eaaaf37dc9607941847db6b26fc41ded724a
4
- data.tar.gz: 5091e1b556002310437ea3f6982b89e51ca37e74
3
+ metadata.gz: 9f55a300d2808032c178912f81d291ba094a867a
4
+ data.tar.gz: 20e173fc302bc246392f9efb96f4497c76154516
5
5
  SHA512:
6
- metadata.gz: 5468e43b1edb0ec5e3bedd4c51caadb44bced02ee448ad22b5da5b5e0108060d78380387ca96469319bd4661dbef9e7c3c590c4d5ee4e161c51e2f6004bdda59
7
- data.tar.gz: b73e8fef699d8bf36ea63ae656cd1961e4b1908486155dd055742a0d338d4c4b4a44aa80a34170a89eff58f31c6c17fca2a324dafd154783cdd86712041f84d1
6
+ metadata.gz: 42b281cc0ebcb60117addc51ddba6b3b39b4358cc86fe804a5a184f2e96e4cff193e66d89b4dedc821e08d529e5ecf23874fa7ee4026b31533ad51f7d050d1c8
7
+ data.tar.gz: 4cdd724e376511e9cbbb82b269b4aecfc3657f3d6618744b90cb5c43bc8e5353e50cc2a9f1e5f2be85616fe72e92163f2fd7dd1728d0b8b42036ecec040e969b
data/Appraisals CHANGED
@@ -4,5 +4,5 @@ appraise "activerecord-4.2" do
4
4
  end
5
5
 
6
6
  appraise 'activerecord-5.0' do
7
- gem 'activerecord', '>= 5.0.0.rc1'
7
+ gem 'activerecord', '>= 5.0.0'
8
8
  end
data/README.md CHANGED
@@ -54,6 +54,7 @@ It defines DB schema using [Rails DSL](http://guides.rubyonrails.org/migrations.
54
54
  * Fix rails version `'>= 4.2', '< 6'`
55
55
  * Support new types ([pull#84](https://github.com/winebarrel/ridgepole/pull/84))
56
56
  * Support `default: -> { ... }` ([pull#85](https://github.com/winebarrel/ridgepole/pull/85))
57
+ * Support DDL Comment (Rails5 only)
57
58
 
58
59
  ## Installation
59
60
 
@@ -202,7 +203,7 @@ add_index "child", ["parent_id"], name: "par_ind", using: :btree
202
203
  add_foreign_key "child", "parent", name: "child_ibfk_1"
203
204
  ```
204
205
 
205
- ## Collation
206
+ ## Collation/Charset
206
207
  You can use the column collation by passing `--enable-mysql-awesome` ([activerecord-mysql-awesome](https://github.com/kamipo/activerecord-mysql-awesome) is required)
207
208
 
208
209
  ```ruby
@@ -214,6 +215,12 @@ create_table "articles", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSE
214
215
  end
215
216
  ```
216
217
 
218
+ Charset:
219
+
220
+ activerecord 5.0.0 and activerecord-mysql-awesome dumps a collation rather than charset because it does not determine the default collation for charset. Specifying a collation for each column would work if it is possible.
221
+
222
+ See `mysql> show character set;` to find charset / collation pair for your system.
223
+
217
224
  ## Execute
218
225
  ```ruby
219
226
  create_table "authors", force: :cascade do |t|
@@ -2,6 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", ">= 5.0.0.rc1"
5
+ gem "activerecord", ">= 5.0.0"
6
6
 
7
7
  gemspec :path => "../"
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.6.5.beta2'
2
+ VERSION = '0.6.5.beta3'
3
3
  end
@@ -0,0 +1,177 @@
1
+ describe 'Ridgepole::Client#diff -> migrate', condition: [:activerecord_5] do
2
+ context 'when change column (add comment)' do
3
+ let(:actual_dsl) {
4
+ <<-EOS
5
+ create_table "employee_clubs", force: :cascade do |t|
6
+ t.integer "emp_no", null: false
7
+ t.integer "club_id", null: false
8
+ t.string "string", null: false
9
+ t.text "text", limit: 65535, null: false
10
+ end
11
+ EOS
12
+ }
13
+
14
+ let(:expected_dsl) {
15
+ <<-EOS
16
+ create_table "employee_clubs", force: :cascade do |t|
17
+ t.integer "emp_no", null: false, comment: "any comment"
18
+ t.integer "club_id", null: false, comment: "any comment2"
19
+ t.string "string", null: false, comment: "any comment3"
20
+ t.text "text", limit: 65535, null: false, comment: "any comment4"
21
+ end
22
+ EOS
23
+ }
24
+
25
+ before { subject.diff(actual_dsl).migrate }
26
+ subject { client }
27
+
28
+ it {
29
+ delta = subject.diff(expected_dsl)
30
+ expect(delta.differ?).to be_truthy
31
+ expect(subject.dump).to match_fuzzy actual_dsl
32
+ delta.migrate
33
+ expect(subject.dump).to match_fuzzy expected_dsl
34
+ }
35
+ end
36
+
37
+ context 'when change column (delete comment)' do
38
+ let(:actual_dsl) {
39
+ <<-EOS
40
+ create_table "employee_clubs", force: :cascade do |t|
41
+ t.integer "emp_no", null: false, comment: "any comment"
42
+ t.integer "club_id", null: false, comment: "any comment2"
43
+ t.string "string", null: false, comment: "any comment3"
44
+ t.text "text", limit: 65535, null: false, comment: "any comment4"
45
+ end
46
+ EOS
47
+ }
48
+
49
+ let(:expected_dsl) {
50
+ <<-EOS
51
+ create_table "employee_clubs", force: :cascade do |t|
52
+ t.integer "emp_no", null: false
53
+ t.integer "club_id", null: false
54
+ t.string "string", null: false
55
+ t.text "text", limit: 65535, null: false
56
+ end
57
+ EOS
58
+ }
59
+
60
+ before { subject.diff(actual_dsl).migrate }
61
+ subject { client }
62
+
63
+ it {
64
+ delta = subject.diff(expected_dsl)
65
+ expect(delta.differ?).to be_truthy
66
+ expect(subject.dump).to match_fuzzy actual_dsl
67
+ delta.migrate
68
+ expect(subject.dump).to match_fuzzy expected_dsl
69
+ }
70
+ end
71
+
72
+ context 'when change column (change comment)' do
73
+ let(:actual_dsl) {
74
+ <<-EOS
75
+ create_table "employee_clubs", force: :cascade do |t|
76
+ t.integer "emp_no", null: false, comment: "any comment"
77
+ t.integer "club_id", null: false, comment: "any comment2"
78
+ t.string "string", null: false, comment: "any comment3"
79
+ t.text "text", limit: 65535, null: false, comment: "any comment4"
80
+ end
81
+ EOS
82
+ }
83
+
84
+ let(:expected_dsl) {
85
+ <<-EOS
86
+ create_table "employee_clubs", force: :cascade do |t|
87
+ t.integer "emp_no", null: false, comment: "other comment"
88
+ t.integer "club_id", null: false, comment: "other comment2"
89
+ t.string "string", null: false, comment: "other comment3"
90
+ t.text "text", limit: 65535, null: false, comment: "other comment4"
91
+ end
92
+ EOS
93
+ }
94
+
95
+ before { subject.diff(actual_dsl).migrate }
96
+ subject { client }
97
+
98
+ it {
99
+ delta = subject.diff(expected_dsl)
100
+ expect(delta.differ?).to be_truthy
101
+ expect(subject.dump).to match_fuzzy actual_dsl
102
+ delta.migrate
103
+ expect(subject.dump).to match_fuzzy expected_dsl
104
+ }
105
+ end
106
+
107
+ context 'when change column (no change comment)' do
108
+ let(:actual_dsl) {
109
+ <<-EOS
110
+ create_table "employee_clubs", force: :cascade do |t|
111
+ t.integer "emp_no", null: false, comment: "any comment"
112
+ t.integer "club_id", null: false, comment: "any comment2"
113
+ t.string "string", null: false, comment: "any comment3"
114
+ t.text "text", limit: 65535, null: false, comment: "any comment4"
115
+ end
116
+ EOS
117
+ }
118
+
119
+ before { subject.diff(actual_dsl).migrate }
120
+ subject { client }
121
+
122
+ it {
123
+ delta = subject.diff(actual_dsl)
124
+ expect(delta.differ?).to be_falsey
125
+ expect(subject.dump).to match_fuzzy actual_dsl
126
+ delta.migrate
127
+ expect(subject.dump).to match_fuzzy actual_dsl
128
+ }
129
+ end
130
+
131
+ context 'when create table (with comment)' do
132
+ let(:expected_dsl) {
133
+ <<-EOS
134
+ create_table "employee_clubs", force: :cascade, comment: "table comment" do |t|
135
+ t.integer "emp_no", null: false, comment: "other comment"
136
+ t.integer "club_id", null: false, comment: "other comment2"
137
+ t.string "string", null: false, comment: "other comment3"
138
+ t.text "text", limit: 65535, null: false, comment: "other comment4"
139
+ end
140
+ EOS
141
+ }
142
+
143
+ subject { client }
144
+
145
+ it {
146
+ delta = subject.diff(expected_dsl)
147
+ expect(delta.differ?).to be_truthy
148
+ expect(subject.dump.strip).to be_empty
149
+ delta.migrate
150
+ expect(subject.dump).to match_fuzzy expected_dsl
151
+ }
152
+ end
153
+
154
+ context 'when drop table (with comment)' do
155
+ let(:actual_dsl) {
156
+ <<-EOS
157
+ create_table "employee_clubs", force: :cascade, comment: "table comment" do |t|
158
+ t.integer "emp_no", null: false, comment: "other comment"
159
+ t.integer "club_id", null: false, comment: "other comment2"
160
+ t.string "string", null: false, comment: "other comment3"
161
+ t.text "text", limit: 65535, null: false, comment: "other comment4"
162
+ end
163
+ EOS
164
+ }
165
+
166
+ before { subject.diff(actual_dsl).migrate }
167
+ subject { client }
168
+
169
+ it {
170
+ delta = subject.diff('')
171
+ expect(delta.differ?).to be_truthy
172
+ expect(subject.dump).to match_fuzzy actual_dsl
173
+ delta.migrate
174
+ expect(subject.dump).to be_empty
175
+ }
176
+ end
177
+ end
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.6.5.beta2
4
+ version: 0.6.5.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: 2016-06-05 00:00:00.000000000 Z
11
+ date: 2016-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -230,6 +230,7 @@ files:
230
230
  - spec/mysql/cli/config_spec.rb
231
231
  - spec/mysql/cli/ridgepole_spec.rb
232
232
  - spec/mysql/collation/collation_spec.rb
233
+ - spec/mysql/comment/comment_spec.rb
233
234
  - spec/mysql/default_lambda/default_lambda_spec.rb
234
235
  - spec/mysql/diff/diff2_spec.rb
235
236
  - spec/mysql/diff/diff_spec.rb
@@ -354,6 +355,7 @@ test_files:
354
355
  - spec/mysql/cli/config_spec.rb
355
356
  - spec/mysql/cli/ridgepole_spec.rb
356
357
  - spec/mysql/collation/collation_spec.rb
358
+ - spec/mysql/comment/comment_spec.rb
357
359
  - spec/mysql/default_lambda/default_lambda_spec.rb
358
360
  - spec/mysql/diff/diff2_spec.rb
359
361
  - spec/mysql/diff/diff_spec.rb