convergence 0.2.7 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|