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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cdf6c82541efe1895f0e5346134025b161376199
4
- data.tar.gz: cb67cd83c49cb3ece78f0b639c9cde1882f7b59e
3
+ metadata.gz: 454a00b43c4a1430553a68eddaeb73103bad92a5
4
+ data.tar.gz: 416cda690943feccf3d41226a9573455b7f4779d
5
5
  SHA512:
6
- metadata.gz: 3d8799c6997f90911cb6e2197f7b091442a93b0015b3baf1420ce355b6541f6a87fd109e75ece21bd153cc1e8770b32398c6ad85b34f4c7c1bad17031daf8b3b
7
- data.tar.gz: 2a730487ee76fda3a585c6e62224afbd192c9b86d4942ee56cb21b2cae834aed90fc74b5b47b221104c6a71cdc31231b0ac27c5fccf4274e0b1e1484546a9ef3
6
+ metadata.gz: c99e127b5dcbecc078f2f1f39ce91a5b720a13761872aecc61ef6c98be9672f79bfd7b6cdf63f9c6acf695a52706abf6faf93043a7881eee9a5b8ddaa362a4d2
7
+ data.tar.gz: 6bc3eca7161196ebaa4d007f28526c170a56cd3ca205fc661a23fbdb566027568ffe49fb9575d2b01b7bf3e2c9a492eab1d08e26a09816df8a57e252e97a8104
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- convergence (0.1.7)
4
+ convergence (0.1.8)
5
5
  diff-lcs
6
6
  diffy
7
7
  mysql2
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
 
@@ -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
 
@@ -4,7 +4,8 @@ class SQLGenerator::MysqlGenerator < SQLGenerator
4
4
  row_format: 'ROW_FORMAT',
5
5
  default_charset: 'DEFAULT CHARACTER SET',
6
6
  collate: 'COLLATE',
7
- comment: 'COMMENT'
7
+ comment: 'COMMENT',
8
+ auto_increment: 'AUTO_INCREMENT'
8
9
  }
9
10
  QUOTE_OPTION = [:comment]
10
11
 
@@ -1,3 +1,3 @@
1
1
  module Convergence
2
- VERSION = '0.1.7'
2
+ VERSION = '0.1.8'
3
3
  end
@@ -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.7
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-08 00:00:00.000000000 Z
11
+ date: 2016-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mysql2