convergence 0.2.7 → 1.0.0
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/CHANGELOG.md +14 -0
- data/Gemfile.lock +4 -5
- data/README.md +14 -17
- data/bin/convergence +2 -19
- data/convergence.gemspec +2 -2
- data/lib/convergence.rb +0 -22
- data/lib/convergence/cli.rb +104 -0
- data/lib/convergence/command.rb +6 -18
- data/lib/convergence/command/apply.rb +6 -2
- data/lib/convergence/command/diff.rb +6 -0
- data/lib/convergence/command/dryrun.rb +8 -2
- data/lib/convergence/command/export.rb +5 -1
- data/lib/convergence/database_connector.rb +1 -0
- data/lib/convergence/database_connector/mysql_connector.rb +2 -0
- data/lib/convergence/default_parameter.rb +1 -0
- data/lib/convergence/default_parameter/mysql_default_parameter.rb +2 -0
- data/lib/convergence/dsl.rb +2 -0
- data/lib/convergence/dumper/mysql_schema_dumper.rb +3 -0
- data/lib/convergence/pretty_diff.rb +2 -0
- data/lib/convergence/sql_generator/mysql_generator.rb +2 -0
- data/lib/convergence/table.rb +4 -0
- data/lib/convergence/version.rb +1 -1
- data/spec/convergence/diff_spec.rb +2 -0
- data/spec/convergence/dsl_spec.rb +1 -0
- data/spec/convergence/dumper/mysql_schema_dumper_spec.rb +2 -0
- data/spec/convergence/dumper_spec.rb +2 -0
- data/spec/convergence/table_spec.rb +1 -0
- data/spec/integrations/command_dryrun.rb +2 -2
- data/spec/integrations/drop_foreign_key.rb +2 -2
- data/spec/spec_helper.rb +3 -4
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c26bf3742a050cf1c1f19c5077900c5399eab4ed
|
4
|
+
data.tar.gz: f956e136b15aa7da59b076876130397a5541f2a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69b9bf97488d41d38c77653cf670cd1d8dd83462e275609fb4b08d808def10802e23f7bb12666229cde592faf127503c2cd88f136c990614ce4b2d860b69436a
|
7
|
+
data.tar.gz: 760af609f15854528884f4861d44bad95a6c4e3038e82b489c69ebb081a5b9714a4615909180648019ed36325a7a5364b448ca54758cfc76137b2f92d49cd53f
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## Convergence 1.0.0 (August 28, 2018) ##
|
2
|
+
|
3
|
+
* [BREAKING CHANGE] Change flag style command to sub-command style (PR: #60)
|
4
|
+
|
5
|
+
A flag style command has been deprecated
|
6
|
+
|
7
|
+
e.g. convergence -c database.yml -i example.schema --apply
|
8
|
+
|
9
|
+
Introduce a sub command style.
|
10
|
+
|
11
|
+
e.g. convergence apply example.schema -c database.yml
|
12
|
+
|
13
|
+
*yujideveloper*
|
14
|
+
|
1
15
|
## Convergence 0.2.7 (August 20, 2018) ##
|
2
16
|
|
3
17
|
* Fix issues of Convergence::Config (PR: #58)
|
data/Gemfile.lock
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
convergence (0.
|
4
|
+
convergence (1.0.0)
|
5
5
|
diff-lcs
|
6
6
|
diffy
|
7
7
|
mysql2
|
8
|
-
|
8
|
+
thor (~> 0.20)
|
9
9
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
@@ -77,7 +77,6 @@ GEM
|
|
77
77
|
ruby-progressbar (1.9.0)
|
78
78
|
ruby_dep (1.5.0)
|
79
79
|
shellany (0.0.1)
|
80
|
-
slop (3.6.0)
|
81
80
|
thor (0.20.0)
|
82
81
|
unicode-display_width (1.3.0)
|
83
82
|
|
@@ -91,8 +90,8 @@ DEPENDENCIES
|
|
91
90
|
guard-rspec
|
92
91
|
pry
|
93
92
|
rake (~> 10.0)
|
94
|
-
rspec
|
93
|
+
rspec (>= 3.5)
|
95
94
|
rubocop
|
96
95
|
|
97
96
|
BUNDLED WITH
|
98
|
-
1.16.
|
97
|
+
1.16.3
|
data/README.md
CHANGED
@@ -53,7 +53,7 @@ create_table 'test_tables' do |t|
|
|
53
53
|
t.index :name
|
54
54
|
end
|
55
55
|
|
56
|
-
$ convergence -c database.yml -
|
56
|
+
$ convergence apply example.schema -c database.yml --dry-run
|
57
57
|
|
58
58
|
# CREATE TABLE `test_tables` (
|
59
59
|
# `id` int(11) NOT NULL AUTO_INCREMENT,
|
@@ -64,7 +64,7 @@ $ convergence -c database.yml -i example.schema --dryrun
|
|
64
64
|
# KEY `index_test_tables_on_name` (`name`)
|
65
65
|
# ) ENGINE=InnoDB ROW_FORMAT=Compact DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;
|
66
66
|
|
67
|
-
$ convergence -c database.yml
|
67
|
+
$ convergence apply example.schema -c database.yml
|
68
68
|
|
69
69
|
SET FOREIGN_KEY_CHECKS=0;
|
70
70
|
--> 0.0005826340056955814s
|
@@ -89,7 +89,7 @@ create_table 'test_tables', comment: 'Table Comment Test', engine: 'MyISAM' do |
|
|
89
89
|
t.datetime :posted_at
|
90
90
|
end
|
91
91
|
|
92
|
-
$ convergence -c database.yml -
|
92
|
+
$ convergence apply changed_example.schema -c database.yml --dry-run
|
93
93
|
|
94
94
|
# DROP INDEX `index_test_tables_on_name` ON `test_tables`;
|
95
95
|
# ALTER TABLE `test_tables`
|
@@ -98,7 +98,7 @@ $ convergence -c database.yml -i changed_example.schema --dryrun
|
|
98
98
|
# ADD COLUMN `posted_at` datetime NOT NULL AFTER `created_at`;
|
99
99
|
# ALTER TABLE `test_tables` ENGINE=MyISAM COMMENT='Table Comment Test';
|
100
100
|
|
101
|
-
$ convergence -c database.yml
|
101
|
+
$ convergence apply changed_example.schema -c database.yml
|
102
102
|
|
103
103
|
SET FOREIGN_KEY_CHECKS=0;
|
104
104
|
--> 0.0005331430002115667s
|
@@ -131,15 +131,12 @@ Create Table: CREATE TABLE `test_tables` (
|
|
131
131
|
## Usage
|
132
132
|
|
133
133
|
```
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
--dryrun
|
141
|
-
--apply execute sql to your database
|
142
|
-
-h, --help Display this help message.
|
134
|
+
Commands:
|
135
|
+
convergence apply FILE -c, --config=CONFIG # execute sql to your database
|
136
|
+
convergence diff FILE1 FILE2 # print diff of DSLs
|
137
|
+
convergence export -c, --config=CONFIG # export db schema to dsl
|
138
|
+
convergence help [COMMAND] # Describe available commands or one specific command
|
139
|
+
convergence version # print the version
|
143
140
|
```
|
144
141
|
|
145
142
|
### DB Config
|
@@ -161,7 +158,7 @@ First, you need to create database.yml.
|
|
161
158
|
And then, execute command like below.
|
162
159
|
|
163
160
|
```
|
164
|
-
$ convergence -c database.yml
|
161
|
+
$ convergence export -c database.yml > example.schema
|
165
162
|
```
|
166
163
|
|
167
164
|
Export DSL like this.
|
@@ -193,16 +190,16 @@ create_table "paper_authors", collate: "utf8_general_ci", comment: "Paper Author
|
|
193
190
|
end
|
194
191
|
```
|
195
192
|
|
196
|
-
###
|
193
|
+
### Dry run
|
197
194
|
|
198
195
|
```
|
199
|
-
$ convergence -c database.yml -
|
196
|
+
$ convergence apply example.schema -c database.yml --dry-run
|
200
197
|
```
|
201
198
|
|
202
199
|
### Apply
|
203
200
|
|
204
201
|
```
|
205
|
-
$ convergence -c database.yml
|
202
|
+
$ convergence apply example.schema -c database.yml
|
206
203
|
```
|
207
204
|
|
208
205
|
### Include Other Schema files
|
data/bin/convergence
CHANGED
@@ -1,23 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
3
3
|
require 'rubygems'
|
4
|
-
require 'convergence'
|
5
|
-
require 'slop'
|
4
|
+
require 'convergence/cli'
|
6
5
|
|
7
|
-
|
8
|
-
opt.banner 'Usage: convergence [options]'
|
9
|
-
|
10
|
-
opt.on 'v', 'version' do
|
11
|
-
puts "version #{Convergence::VERSION}"
|
12
|
-
exit
|
13
|
-
end
|
14
|
-
|
15
|
-
opt.on 'c=', 'config=', 'Database Yaml Setting'
|
16
|
-
opt.on 'd=', 'diff=', 'DSL1,DSL2', as: Array, limit: 2
|
17
|
-
opt.on 'e', 'export', 'export db schema to dsl'
|
18
|
-
opt.on 'i=', 'input=', 'Input DSL'
|
19
|
-
opt.on 'dryrun'
|
20
|
-
opt.on 'apply', 'execute sql to your database'
|
21
|
-
end
|
22
|
-
|
23
|
-
Convergence::Command.new(opts).execute
|
6
|
+
Convergence::CLI.start
|
data/convergence.gemspec
CHANGED
@@ -21,13 +21,13 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_dependency 'mysql2'
|
22
22
|
spec.add_dependency 'diff-lcs'
|
23
23
|
spec.add_dependency 'diffy'
|
24
|
-
spec.add_dependency '
|
24
|
+
spec.add_dependency 'thor', '~> 0.20'
|
25
25
|
|
26
26
|
spec.required_ruby_version = ">= 2.3.0"
|
27
27
|
|
28
28
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
29
29
|
spec.add_development_dependency 'rake', '~> 10.0'
|
30
|
-
spec.add_development_dependency 'rspec'
|
30
|
+
spec.add_development_dependency 'rspec', '>= 3.5'
|
31
31
|
spec.add_development_dependency 'rubocop'
|
32
32
|
spec.add_development_dependency 'pry'
|
33
33
|
spec.add_development_dependency 'guard'
|
data/lib/convergence.rb
CHANGED
@@ -1,24 +1,2 @@
|
|
1
1
|
require 'convergence/module'
|
2
|
-
require 'convergence/logger'
|
3
2
|
require 'convergence/version'
|
4
|
-
require 'convergence/config'
|
5
|
-
require 'convergence/command'
|
6
|
-
require 'convergence/command/diff'
|
7
|
-
require 'convergence/command/export'
|
8
|
-
require 'convergence/command/dryrun'
|
9
|
-
require 'convergence/command/apply'
|
10
|
-
require 'convergence/pretty_diff'
|
11
|
-
require 'convergence/database_connector'
|
12
|
-
require 'convergence/database_connector/mysql_connector'
|
13
|
-
require 'convergence/column'
|
14
|
-
require 'convergence/index'
|
15
|
-
require 'convergence/foreign_key'
|
16
|
-
require 'convergence/table'
|
17
|
-
require 'convergence/dsl'
|
18
|
-
require 'convergence/diff'
|
19
|
-
require 'convergence/sql_generator'
|
20
|
-
require 'convergence/sql_generator/mysql_generator'
|
21
|
-
require 'convergence/dumper'
|
22
|
-
require 'convergence/dumper/mysql_schema_dumper'
|
23
|
-
require 'convergence/default_parameter'
|
24
|
-
require 'convergence/default_parameter/mysql_default_parameter'
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'thor'
|
4
|
+
require 'convergence/module'
|
5
|
+
require 'convergence/config'
|
6
|
+
|
7
|
+
class Convergence::CLI < Thor
|
8
|
+
default_command :__fallback # TODO: `__fallback` will be removed in a future version(maybe v0.4.0)
|
9
|
+
|
10
|
+
map %w[--version -v] => :version
|
11
|
+
|
12
|
+
desc 'apply FILE', 'execute sql to your database'
|
13
|
+
method_option :config, aliases: '-c', type: :string, required: true, desc: 'Database Yaml Setting'
|
14
|
+
method_option :dry_run, type: :boolean
|
15
|
+
def apply(file)
|
16
|
+
opts = { input: file }
|
17
|
+
if options[:dry_run]
|
18
|
+
require 'convergence/command/dryrun'
|
19
|
+
Convergence::Command::Dryrun.new(opts, config: config).execute
|
20
|
+
else
|
21
|
+
require 'convergence/command/apply'
|
22
|
+
Convergence::Command::Apply.new(opts, config: config).execute
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
desc 'diff FILE1 FILE2', 'print diff of DSLs'
|
27
|
+
def diff(file1, file2)
|
28
|
+
require 'convergence/command/diff'
|
29
|
+
opts = { diff: [file1, file2] }
|
30
|
+
Convergence::Command::Diff.new(opts, config: config).execute
|
31
|
+
end
|
32
|
+
|
33
|
+
desc 'export', 'export db schema to dsl'
|
34
|
+
method_option :config, aliases: '-c', type: :string, required: true, desc: 'Database Yaml Setting'
|
35
|
+
def export
|
36
|
+
require 'convergence/command/export'
|
37
|
+
opts = {}
|
38
|
+
Convergence::Command::Export.new(opts, config: config).execute
|
39
|
+
end
|
40
|
+
|
41
|
+
desc 'version', 'print the version'
|
42
|
+
def version
|
43
|
+
require 'convergence/version'
|
44
|
+
puts "version #{Convergence::VERSION}"
|
45
|
+
end
|
46
|
+
|
47
|
+
# TODO: `__fallback` will be removed in a future version(maybe v0.4.0)
|
48
|
+
desc '', '', hide: true
|
49
|
+
method_option :config,
|
50
|
+
aliases: '-c', type: :string,
|
51
|
+
desc: 'Database Yaml Setting'
|
52
|
+
method_option :diff,
|
53
|
+
aliases: '-d', type: :array, default: nil,
|
54
|
+
banner: 'DSL1 DSL2'
|
55
|
+
method_option :export,
|
56
|
+
aliases: '-e', type: :boolean, default: false,
|
57
|
+
desc: 'export db schema to dsl'
|
58
|
+
method_option :input,
|
59
|
+
aliases: '-i', type: :string,
|
60
|
+
desc: 'Input DSL'
|
61
|
+
method_option :dryrun,
|
62
|
+
type: :boolean, default: false
|
63
|
+
method_option :apply,
|
64
|
+
type: :boolean, default: false,
|
65
|
+
desc: 'execute sql to your database'
|
66
|
+
def __fallback
|
67
|
+
command_klass =
|
68
|
+
if !options[:diff].nil? && !options[:diff].empty?
|
69
|
+
require 'convergence/command/diff'
|
70
|
+
opts = { diff: options[:diff] }
|
71
|
+
Convergence::Command::Diff
|
72
|
+
elsif options[:export]
|
73
|
+
require 'convergence/command/export'
|
74
|
+
opts = {}
|
75
|
+
Convergence::Command::Export
|
76
|
+
elsif options[:dryrun]
|
77
|
+
require 'convergence/command/dryrun'
|
78
|
+
opts = { input: options[:input] }
|
79
|
+
Convergence::Command::Dryrun
|
80
|
+
elsif options[:apply]
|
81
|
+
require 'convergence/command/apply'
|
82
|
+
opts = { input: options[:input] }
|
83
|
+
Convergence::Command::Apply
|
84
|
+
end
|
85
|
+
|
86
|
+
if command_klass
|
87
|
+
deprecation_warning
|
88
|
+
command_klass.new(opts, config: config).execute
|
89
|
+
else
|
90
|
+
help
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
private
|
95
|
+
|
96
|
+
def config
|
97
|
+
return unless options[:config]
|
98
|
+
@config ||= Convergence::Config.load(options[:config])
|
99
|
+
end
|
100
|
+
|
101
|
+
def deprecation_warning
|
102
|
+
warn '[DEPRECATION] Option style is deprecated. Please use subscommand style.'
|
103
|
+
end
|
104
|
+
end
|
data/lib/convergence/command.rb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
require 'convergence/config'
|
2
|
+
require 'convergence/logger'
|
3
|
+
require 'convergence/database_connector'
|
4
|
+
|
1
5
|
class Convergence::Command
|
2
6
|
def initialize(opts, config: nil)
|
3
7
|
@opts = opts
|
@@ -8,24 +12,6 @@ class Convergence::Command
|
|
8
12
|
end
|
9
13
|
end
|
10
14
|
|
11
|
-
def execute
|
12
|
-
execute_klass =
|
13
|
-
if @opts[:diff]
|
14
|
-
Convergence::Command::Diff
|
15
|
-
elsif @opts[:export]
|
16
|
-
Convergence::Command::Export
|
17
|
-
elsif @opts[:dryrun]
|
18
|
-
Convergence::Command::Dryrun
|
19
|
-
elsif @opts[:apply]
|
20
|
-
Convergence::Command::Apply
|
21
|
-
end
|
22
|
-
if execute_klass.nil?
|
23
|
-
puts @opts
|
24
|
-
else
|
25
|
-
execute_klass.new(@opts, config: @config).execute
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
15
|
def database_adapter
|
30
16
|
@config.nil? ? 'mysql' : @config.adapter
|
31
17
|
end
|
@@ -37,6 +23,7 @@ class Convergence::Command
|
|
37
23
|
def dumper
|
38
24
|
@dumper ||= case database_adapter
|
39
25
|
when 'mysql', 'mysql2'
|
26
|
+
require 'convergence/dumper/mysql_schema_dumper'
|
40
27
|
Convergence::Dumper::MysqlSchemaDumper.new(connector)
|
41
28
|
else
|
42
29
|
fail NotImplementedError.new('unknown database adapter')
|
@@ -46,6 +33,7 @@ class Convergence::Command
|
|
46
33
|
def sql_generator
|
47
34
|
@sql_generator ||= case database_adapter
|
48
35
|
when 'mysql', 'mysql2'
|
36
|
+
require 'convergence/sql_generator/mysql_generator'
|
49
37
|
SQLGenerator::MysqlGenerator.new
|
50
38
|
else
|
51
39
|
fail NotImplementedError.new('unknown database adapter')
|
@@ -1,10 +1,14 @@
|
|
1
1
|
require 'benchmark'
|
2
2
|
require 'pathname'
|
3
|
+
require 'convergence/command'
|
4
|
+
require 'convergence/dsl'
|
5
|
+
require 'convergence/default_parameter'
|
6
|
+
require 'convergence/diff'
|
3
7
|
|
4
8
|
class Convergence::Command::Apply < Convergence::Command
|
5
9
|
def validate!
|
6
|
-
fail ArgumentError.new('
|
7
|
-
fail ArgumentError.new('
|
10
|
+
fail ArgumentError.new('config required') if @config.nil?
|
11
|
+
fail ArgumentError.new('input required') unless @opts[:input]
|
8
12
|
end
|
9
13
|
|
10
14
|
def execute
|
@@ -1,3 +1,9 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'convergence/command'
|
3
|
+
require 'convergence/default_parameter'
|
4
|
+
require 'convergence/pretty_diff'
|
5
|
+
require 'convergence/dsl'
|
6
|
+
|
1
7
|
class Convergence::Command::Diff < Convergence::Command
|
2
8
|
def validate!
|
3
9
|
unless @opts[:diff].size == 2
|
@@ -1,8 +1,14 @@
|
|
1
1
|
require 'pathname'
|
2
|
+
require 'convergence/command'
|
3
|
+
require 'convergence/command/apply'
|
4
|
+
require 'convergence/dsl'
|
5
|
+
require 'convergence/default_parameter'
|
6
|
+
require 'convergence/pretty_diff'
|
7
|
+
|
2
8
|
class Convergence::Command::Dryrun < Convergence::Command
|
3
9
|
def validate!
|
4
|
-
fail ArgumentError.new('
|
5
|
-
fail ArgumentError.new('
|
10
|
+
fail ArgumentError.new('config required') if @config.nil?
|
11
|
+
fail ArgumentError.new('input required') unless @opts[:input]
|
6
12
|
end
|
7
13
|
|
8
14
|
def execute
|
@@ -1,7 +1,11 @@
|
|
1
|
+
require 'convergence/command'
|
2
|
+
require 'convergence/dumper'
|
3
|
+
require 'convergence/default_parameter'
|
4
|
+
|
1
5
|
class Convergence::Command::Export < Convergence::Command
|
2
6
|
def validate!
|
3
7
|
if @config.nil?
|
4
|
-
fail ArgumentError.new('
|
8
|
+
fail ArgumentError.new('config required')
|
5
9
|
end
|
6
10
|
end
|
7
11
|
|
@@ -5,6 +5,7 @@ class Convergence::DatabaseConnector
|
|
5
5
|
@connector =
|
6
6
|
case config.adapter
|
7
7
|
when 'mysql', 'mysql2'
|
8
|
+
require 'convergence/database_connector/mysql_connector'
|
8
9
|
Convergence::DatabaseConnector::MysqlConnector.new(config)
|
9
10
|
else
|
10
11
|
fail NotImplementedError.new("#{config.adapter} not supported yet")
|
@@ -2,6 +2,7 @@ class Convergence::DefaultParameter
|
|
2
2
|
def initialize(adapter)
|
3
3
|
case adapter.downcase
|
4
4
|
when 'mysql', 'mysql2'
|
5
|
+
require 'convergence/default_parameter/mysql_default_parameter'
|
5
6
|
@parameter_klass = Convergence::DefaultParameter::MysqlDefaultParameter.new
|
6
7
|
else
|
7
8
|
fail NotImplementedError.new("unknown adapter #{config.adapter}.")
|
data/lib/convergence/dsl.rb
CHANGED
data/lib/convergence/table.rb
CHANGED
data/lib/convergence/version.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'convergence/command/dryrun'
|
2
3
|
|
3
4
|
describe 'Command::Dryrun#execute' do
|
4
5
|
def execute(dsl_path)
|
5
6
|
parse_option = {
|
6
|
-
dryrun: true,
|
7
7
|
input: File.expand_path("#{File.dirname(__FILE__)}/../fixtures/#{dsl_path}")
|
8
8
|
}
|
9
|
-
Convergence::Command.new(parse_option, config: mysql_settings).execute
|
9
|
+
Convergence::Command::Dryrun.new(parse_option, config: mysql_settings).execute
|
10
10
|
end
|
11
11
|
|
12
12
|
describe 'change table options' do
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'convergence/command/apply'
|
2
3
|
|
3
4
|
describe 'Changeable Foreign key' do
|
4
5
|
after(:each) do
|
@@ -7,10 +8,9 @@ describe 'Changeable Foreign key' do
|
|
7
8
|
|
8
9
|
def execute(dsl_path)
|
9
10
|
parse_option = {
|
10
|
-
apply: true,
|
11
11
|
input: File.expand_path("#{File.dirname(__FILE__)}/../fixtures/#{dsl_path}")
|
12
12
|
}
|
13
|
-
Convergence::Command.new(parse_option, config: mysql_settings).execute
|
13
|
+
Convergence::Command::Apply.new(parse_option, config: mysql_settings).execute
|
14
14
|
end
|
15
15
|
|
16
16
|
describe 'drop foreign key' do
|
data/spec/spec_helper.rb
CHANGED
@@ -3,6 +3,7 @@ require 'bundler/setup'
|
|
3
3
|
require 'rspec'
|
4
4
|
require 'pry'
|
5
5
|
require 'convergence'
|
6
|
+
require 'convergence/database_connector'
|
6
7
|
Dir["#{File.dirname(__FILE__)}/integrations/**/*.rb"].each { |f| require f }
|
7
8
|
|
8
9
|
$default_output = File.open('/dev/null', 'w')
|
@@ -20,14 +21,12 @@ def rollback
|
|
20
21
|
.map(&:strip)
|
21
22
|
.reject(&:empty?)
|
22
23
|
sqls.each do |sql|
|
23
|
-
Convergence::
|
24
|
-
.connector
|
24
|
+
Convergence::DatabaseConnector.new(mysql_settings)
|
25
25
|
.client
|
26
26
|
.query("#{sql};")
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
RSpec.configure do |config|
|
31
|
-
config.
|
32
|
-
config.run_all_when_everything_filtered = true
|
31
|
+
config.filter_run_when_matching :focus
|
33
32
|
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.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shinsuke Nishio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mysql2
|
@@ -53,19 +53,19 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: thor
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0.20'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0.20'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '3.5'
|
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
|
-
version: '
|
110
|
+
version: '3.5'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rubocop
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -187,6 +187,7 @@ files:
|
|
187
187
|
- convergence.gemspec
|
188
188
|
- database.yml.example
|
189
189
|
- lib/convergence.rb
|
190
|
+
- lib/convergence/cli.rb
|
190
191
|
- lib/convergence/column.rb
|
191
192
|
- lib/convergence/command.rb
|
192
193
|
- lib/convergence/command/apply.rb
|