convergence 0.1.7 → 0.1.8
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/Gemfile.lock +1 -1
- data/README.md +7 -0
- data/lib/convergence/diff.rb +8 -0
- data/lib/convergence/dumper/mysql_schema_dumper.rb +1 -0
- data/lib/convergence/sql_generator/mysql_generator.rb +2 -1
- data/lib/convergence/version.rb +1 -1
- data/spec/fixtures/add_table.schema +4 -0
- data/spec/integrations/command_dryrun.rb +20 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 454a00b43c4a1430553a68eddaeb73103bad92a5
|
4
|
+
data.tar.gz: 416cda690943feccf3d41226a9573455b7f4779d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c99e127b5dcbecc078f2f1f39ce91a5b720a13761872aecc61ef6c98be9672f79bfd7b6cdf63f9c6acf695a52706abf6faf93043a7881eee9a5b8ddaa362a4d2
|
7
|
+
data.tar.gz: 6bc3eca7161196ebaa4d007f28526c170a56cd3ca205fc661a23fbdb566027568ffe49fb9575d2b01b7bf3e2c9a492eab1d08e26a09816df8a57e252e97a8104
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -296,6 +296,13 @@ create_table "authors", comment: 'Author', engine: 'MyISAM', collate: "utf8_gene
|
|
296
296
|
end
|
297
297
|
```
|
298
298
|
|
299
|
+
### auto increment
|
300
|
+
|
301
|
+
```
|
302
|
+
create_table "orders", auto_increment: 1000 do |t|
|
303
|
+
t.int :id, primary_key: true, extra: :auto_increment
|
304
|
+
end
|
305
|
+
```
|
299
306
|
|
300
307
|
## Test
|
301
308
|
|
data/lib/convergence/diff.rb
CHANGED
@@ -154,6 +154,9 @@ class Convergence::Diff
|
|
154
154
|
.reject do |k, v|
|
155
155
|
!from.table_options[k].nil? && from.table_options[k].to_s.downcase == v.to_s.downcase
|
156
156
|
end
|
157
|
+
if remove_auto_increment_option?(from.table_options[:auto_increment], to.table_options[:auto_increment])
|
158
|
+
change_options.delete(:auto_increment)
|
159
|
+
end
|
157
160
|
Hash[change_options]
|
158
161
|
end
|
159
162
|
|
@@ -164,4 +167,9 @@ class Convergence::Diff
|
|
164
167
|
def case_sensitive_column?(column)
|
165
168
|
CASE_SENSITIVE_COLUMNS.include?(column)
|
166
169
|
end
|
170
|
+
|
171
|
+
def remove_auto_increment_option?(from_value, to_value)
|
172
|
+
return true if from_value.nil? || to_value.nil?
|
173
|
+
from_value >= to_value
|
174
|
+
end
|
167
175
|
end
|
@@ -111,6 +111,7 @@ class Convergence::Dumper::MysqlSchemaDumper
|
|
111
111
|
option.merge!(default_charset: table_option['CHARACTER_SET_NAME'])
|
112
112
|
option.merge!(collate: table_option['TABLE_COLLATION'])
|
113
113
|
option.merge!(comment: table_option['TABLE_COMMENT'])
|
114
|
+
option.merge!(auto_increment: table_option['AUTO_INCREMENT']) if table_option['AUTO_INCREMENT']
|
114
115
|
table.table_options = option
|
115
116
|
end
|
116
117
|
|
data/lib/convergence/version.rb
CHANGED
@@ -26,3 +26,7 @@ end
|
|
26
26
|
create_table 'dummies', comment: 'Dummy Table' do |t|
|
27
27
|
t.int "id", primary_key: true, extra: "auto_increment", comment: 'Hello Convergence'
|
28
28
|
end
|
29
|
+
|
30
|
+
create_table 'dummies2', auto_increment: 1000 do |t|
|
31
|
+
t.int :id, primary_key: true, extra: :auto_increment
|
32
|
+
end
|
@@ -72,4 +72,24 @@ describe 'Command::Dryrun#execute' do
|
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
75
|
+
|
76
|
+
describe 'auto increment' do
|
77
|
+
describe 'create table with auto increment option' do
|
78
|
+
let(:exec_dsl) { 'add_table.schema' }
|
79
|
+
let(:expected_query) do
|
80
|
+
q = <<-QUERY
|
81
|
+
# CREATE TABLE `dummies2` (
|
82
|
+
# `id` int(11) NOT NULL AUTO_INCREMENT,
|
83
|
+
# PRIMARY KEY (`id`)
|
84
|
+
# ) ENGINE=InnoDB ROW_FORMAT=Compact DEFAULT CHARACTER SET=utf8 AUTO_INCREMENT=1000 COLLATE=utf8_general_ci
|
85
|
+
QUERY
|
86
|
+
q.strip
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should be create table with auto increment options' do
|
90
|
+
result = execute(exec_dsl)
|
91
|
+
expect(result).to be_include(expected_query)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
75
95
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: convergence
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shinsuke Nishio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mysql2
|