scheman 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -2
- data/bin/scheman +5 -0
- data/lib/scheman.rb +4 -0
- data/lib/scheman/command_builder.rb +44 -0
- data/lib/scheman/commands/base.rb +6 -0
- data/lib/scheman/commands/diff.rb +103 -0
- data/lib/scheman/errors.rb +6 -0
- data/lib/scheman/parsers/mysql.rb +39 -6
- data/lib/scheman/schema.rb +2 -3
- data/lib/scheman/version.rb +1 -1
- data/lib/scheman/views/mysql.rb +17 -8
- data/scheman.gemspec +1 -0
- data/spec/fixtures/example1.sql +9 -0
- data/spec/scheman/diff_spec.rb +6 -6
- data/spec/scheman/parsers/mysql_spec.rb +63 -3
- metadata +24 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 456bdbc451ec84ddb6f377404e7654d2be2a9b8e
|
4
|
+
data.tar.gz: a3c758811636f4466abcc3fc82332931de0e8f69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6da8d574d687da3d0394e4944032daecdc47eb15421412f1f26e798c7db22b6426a2cf3655549acf7ee8a21e712f6d0519349f5e8c0c337df6c2bb47d7d9e54d
|
7
|
+
data.tar.gz: 88bf79baf57946a03352ec156882243ed3cfb05753cce7660a70e60057ab3beb27d41c5503f2da1eb68512611a2a2bde26611fc6736370f96cd72826575143d9
|
data/CHANGELOG.md
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
+
## 0.0.4
|
2
|
+
* Add `schema diff` command
|
3
|
+
* Improve MySQL parser logic
|
4
|
+
|
1
5
|
## 0.0.3
|
2
|
-
* Support DEFAULT
|
6
|
+
* Support DEFAULT column qualifier
|
3
7
|
|
4
8
|
## 0.0.2
|
5
9
|
* Support ADD INDEX
|
6
10
|
* Support DROP INDEX
|
7
|
-
*
|
11
|
+
* Detect altered column
|
8
12
|
|
9
13
|
## 0.0.1
|
10
14
|
* 1st Release
|
data/bin/scheman
ADDED
data/lib/scheman.rb
CHANGED
@@ -5,7 +5,11 @@ require "active_support/core_ext/object/blank"
|
|
5
5
|
require "active_support/core_ext/object/try"
|
6
6
|
require "active_support/core_ext/string/indent"
|
7
7
|
require "parslet"
|
8
|
+
require "slop"
|
8
9
|
|
10
|
+
require "scheman/command_builder"
|
11
|
+
require "scheman/commands/base"
|
12
|
+
require "scheman/commands/diff"
|
9
13
|
require "scheman/diff"
|
10
14
|
require "scheman/errors"
|
11
15
|
require "scheman/parser_builder"
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Scheman
|
2
|
+
class CommandBuilder
|
3
|
+
def self.call(*args)
|
4
|
+
new(*args).call
|
5
|
+
end
|
6
|
+
|
7
|
+
# @param argv [Array] ARGV
|
8
|
+
def initialize(argv)
|
9
|
+
@argv = argv
|
10
|
+
end
|
11
|
+
|
12
|
+
# @return [Scheman::Commands::Base]
|
13
|
+
def call
|
14
|
+
command_class.new(@argv)
|
15
|
+
rescue Errors::CommandNotFound
|
16
|
+
terminate
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def command_class
|
22
|
+
case command_name
|
23
|
+
when "diff"
|
24
|
+
Commands::Diff
|
25
|
+
else
|
26
|
+
raise Errors::CommandNotFound
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# @note You must pass a command name like "scheman diff"
|
31
|
+
def command_name
|
32
|
+
@argv[0]
|
33
|
+
end
|
34
|
+
|
35
|
+
def usage
|
36
|
+
"Usage: #{$0} <command> [options]"
|
37
|
+
end
|
38
|
+
|
39
|
+
def terminate
|
40
|
+
warn usage
|
41
|
+
exit(1)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
module Scheman
|
2
|
+
module Commands
|
3
|
+
class Diff < Base
|
4
|
+
DEFAULT_AFTER_SCHEMA_PATH = "schema.sql"
|
5
|
+
|
6
|
+
DEFAULT_TYPE = "mysql"
|
7
|
+
|
8
|
+
# @param argv [Array] ARGV
|
9
|
+
def initialize(argv)
|
10
|
+
@argv = argv
|
11
|
+
end
|
12
|
+
|
13
|
+
# Outputs a schema diff
|
14
|
+
def call
|
15
|
+
print diff
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def before
|
21
|
+
case
|
22
|
+
when has_input_from_stdin?
|
23
|
+
STDIN.read
|
24
|
+
when before_schema_path
|
25
|
+
File.read(before_schema_path)
|
26
|
+
else
|
27
|
+
raise Errors::NoBeforeSchema
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def after
|
32
|
+
case
|
33
|
+
when after_schema_path
|
34
|
+
File.read(after_schema_path)
|
35
|
+
when has_default_schema_file?
|
36
|
+
default_schema
|
37
|
+
else
|
38
|
+
"CREATE DATABASE database_name;"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# @return [String]
|
43
|
+
# @example
|
44
|
+
# "mysql"
|
45
|
+
def type
|
46
|
+
options[:type] || DEFAULT_TYPE
|
47
|
+
end
|
48
|
+
|
49
|
+
# @return [Schema::Diff]
|
50
|
+
def diff
|
51
|
+
@diff ||= Scheman::Diff.new(
|
52
|
+
before: before,
|
53
|
+
after: after,
|
54
|
+
type: type,
|
55
|
+
)
|
56
|
+
end
|
57
|
+
|
58
|
+
# @return [true, false] True if any input given via STDIN
|
59
|
+
def has_input_from_stdin?
|
60
|
+
has_pipe_input? || has_redirect_input?
|
61
|
+
end
|
62
|
+
|
63
|
+
# @return [true, false] True if any input given from redirection
|
64
|
+
def has_pipe_input?
|
65
|
+
File.pipe?(STDIN)
|
66
|
+
end
|
67
|
+
|
68
|
+
# @return [true, false] True if any input given from redirection
|
69
|
+
def has_redirect_input?
|
70
|
+
File.select([STDIN], [], [], 0) != nil
|
71
|
+
end
|
72
|
+
|
73
|
+
# @return [String, nil] Path to a previous schema
|
74
|
+
def before_schema_path
|
75
|
+
options[:before]
|
76
|
+
end
|
77
|
+
|
78
|
+
# @return [String, nil] Path to a next schema
|
79
|
+
def after_schema_path
|
80
|
+
options[:after]
|
81
|
+
end
|
82
|
+
|
83
|
+
# @return [String, nil] True if a schema file exists in the default schema file path
|
84
|
+
def has_default_schema_file?
|
85
|
+
File.exist?(DEFAULT_AFTER_SCHEMA_PATH)
|
86
|
+
end
|
87
|
+
|
88
|
+
# @return [String, nil]
|
89
|
+
def default_schema
|
90
|
+
File.read(DEFAULT_AFTER_SCHEMA_PATH)
|
91
|
+
end
|
92
|
+
|
93
|
+
def options
|
94
|
+
@options ||= Slop.parse!(@argv, help: true) do
|
95
|
+
banner "Usage: #{$0} diff [options]"
|
96
|
+
on "type=", "SQL type (e.g. mysql)"
|
97
|
+
on "before=", "Path to the previous schema file"
|
98
|
+
on "after=", "Path to the next schema file"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
data/lib/scheman/errors.rb
CHANGED
@@ -67,7 +67,7 @@ module Scheman
|
|
67
67
|
root(:statements)
|
68
68
|
|
69
69
|
rule(:statements) do
|
70
|
-
statement.repeat
|
70
|
+
statement.repeat.as(:statements)
|
71
71
|
end
|
72
72
|
|
73
73
|
rule(:statement) do
|
@@ -80,7 +80,8 @@ module Scheman
|
|
80
80
|
alter |
|
81
81
|
insert |
|
82
82
|
delimiter_statement |
|
83
|
-
empty_statement
|
83
|
+
empty_statement |
|
84
|
+
spaces
|
84
85
|
end
|
85
86
|
|
86
87
|
rule(:newline) do
|
@@ -91,6 +92,10 @@ module Scheman
|
|
91
92
|
match('\s')
|
92
93
|
end
|
93
94
|
|
95
|
+
rule(:space?) do
|
96
|
+
space.maybe
|
97
|
+
end
|
98
|
+
|
94
99
|
rule(:spaces) do
|
95
100
|
space.repeat(1)
|
96
101
|
end
|
@@ -138,8 +143,17 @@ module Scheman
|
|
138
143
|
delimiter >> spaces?
|
139
144
|
end
|
140
145
|
|
146
|
+
rule(:word) do
|
147
|
+
match('\w').repeat(1)
|
148
|
+
end
|
149
|
+
|
141
150
|
rule(:comment) do
|
142
|
-
(
|
151
|
+
(
|
152
|
+
(str("#") | str("--")) >> non(newline) >> newline
|
153
|
+
) | (
|
154
|
+
str("/") >> space? >> str("*") >>
|
155
|
+
((str("*") >> space? >> str("/")).absent? >> any).repeat >> (str("*") >> space? >> str("/"))
|
156
|
+
)
|
143
157
|
end
|
144
158
|
|
145
159
|
rule(:use) do
|
@@ -172,7 +186,26 @@ module Scheman
|
|
172
186
|
|
173
187
|
rule(:create_table) do
|
174
188
|
create_table_beginning >> spaces >> table_name >>
|
175
|
-
spaces? >> table_components >> eol
|
189
|
+
spaces? >> table_components >> (spaces? >> create_table_options >> spaces?).maybe >> eol
|
190
|
+
end
|
191
|
+
|
192
|
+
rule(:create_table_options) do
|
193
|
+
(comment_table_option | charset_table_option | other_table_option) >>
|
194
|
+
(spaces >> (comment_table_option | charset_table_option | other_table_option)).repeat
|
195
|
+
end
|
196
|
+
|
197
|
+
rule(:comment_table_option) do
|
198
|
+
case_insensitive_str("comment") >> spaces? >> str("=") >> spaces? >> single_quoted(match("[^']").repeat(1))
|
199
|
+
end
|
200
|
+
|
201
|
+
rule(:charset_table_option) do
|
202
|
+
case_insensitive_str("default ").maybe >>
|
203
|
+
(case_insensitive_str("charset") | case_insensitive_str("character set")) >>
|
204
|
+
spaces? >> str("=") >> spaces? >> word
|
205
|
+
end
|
206
|
+
|
207
|
+
rule(:other_table_option) do
|
208
|
+
word >> spaces? >> str("=") >> spaces? >> (word | single_quoted(word) | double_quoted(word))
|
176
209
|
end
|
177
210
|
|
178
211
|
rule(:table_components) do
|
@@ -336,11 +369,11 @@ module Scheman
|
|
336
369
|
end
|
337
370
|
|
338
371
|
rule(:auto_increment_qualifier) do
|
339
|
-
case_insensitive_str("
|
372
|
+
case_insensitive_str("auto_increment").as(:auto_increment_qualifier)
|
340
373
|
end
|
341
374
|
|
342
375
|
rule(:field_comment) do
|
343
|
-
case_insensitive_str("comment") >> spaces >> single_quoted(match("[^']"))
|
376
|
+
case_insensitive_str("comment") >> spaces >> single_quoted(match("[^']").repeat(1))
|
344
377
|
end
|
345
378
|
|
346
379
|
rule(:on_update) do
|
data/lib/scheman/schema.rb
CHANGED
@@ -45,7 +45,7 @@ module Scheman
|
|
45
45
|
# @return [Array<Field>]
|
46
46
|
def fields
|
47
47
|
@table[:fields].map do |field|
|
48
|
-
Field.new(field
|
48
|
+
Field.new(field[:field])
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -74,9 +74,8 @@ module Scheman
|
|
74
74
|
end
|
75
75
|
|
76
76
|
class Field
|
77
|
-
def initialize(field
|
77
|
+
def initialize(field)
|
78
78
|
@field = field
|
79
|
-
@table = table
|
80
79
|
end
|
81
80
|
|
82
81
|
# @note Overridden
|
data/lib/scheman/version.rb
CHANGED
data/lib/scheman/views/mysql.rb
CHANGED
@@ -19,13 +19,17 @@ module Scheman
|
|
19
19
|
|
20
20
|
class Transform < Parslet::Transform
|
21
21
|
rule(root: subtree(:root)) do
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
22
|
+
if root.to_s.present?
|
23
|
+
[
|
24
|
+
"BEGIN;",
|
25
|
+
"SET foreign_key_checks=0;",
|
26
|
+
root,
|
27
|
+
"SET foreign_key_checks=1;",
|
28
|
+
"COMMIT;",
|
29
|
+
].join("\n\n") + "\n"
|
30
|
+
else
|
31
|
+
""
|
32
|
+
end
|
29
33
|
end
|
30
34
|
|
31
35
|
rule(
|
@@ -296,7 +300,12 @@ module Scheman
|
|
296
300
|
# @example
|
297
301
|
# "NOT NULL"
|
298
302
|
def type
|
299
|
-
@element[:type]
|
303
|
+
case @element[:type]
|
304
|
+
when "auto_increment"
|
305
|
+
@element[:type].upcase
|
306
|
+
else
|
307
|
+
@element[:type].upcase.gsub("_", " ")
|
308
|
+
end
|
300
309
|
end
|
301
310
|
|
302
311
|
# @example
|
data/scheman.gemspec
CHANGED
@@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
|
19
19
|
spec.add_dependency "activesupport"
|
20
20
|
spec.add_dependency "parslet"
|
21
|
+
spec.add_dependency "slop"
|
21
22
|
spec.add_development_dependency "bundler", "~> 1.6"
|
22
23
|
spec.add_development_dependency "pry"
|
23
24
|
spec.add_development_dependency "rake"
|
data/spec/scheman/diff_spec.rb
CHANGED
@@ -20,12 +20,12 @@ describe Scheman::Diff do
|
|
20
20
|
let(:before_schema) do
|
21
21
|
<<-EOS.strip_heredoc
|
22
22
|
CREATE TABLE `table1` (
|
23
|
-
`column1` INTEGER(11) PRIMARY KEY NOT NULL
|
23
|
+
`column1` INTEGER(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
|
24
24
|
`column2` DATETIME DEFAULT NOW()
|
25
25
|
);
|
26
26
|
|
27
27
|
CREATE TABLE `table2` (
|
28
|
-
`column1` INTEGER(11) NOT NULL
|
28
|
+
`column1` INTEGER(11) NOT NULL AUTO_INCREMENT,
|
29
29
|
PRIMARY KEY (`column1`)
|
30
30
|
);
|
31
31
|
EOS
|
@@ -34,14 +34,14 @@ describe Scheman::Diff do
|
|
34
34
|
let(:after_schema) do
|
35
35
|
<<-EOS.strip_heredoc
|
36
36
|
CREATE TABLE `table1` (
|
37
|
-
`column1` CHAR(11) NOT NULL
|
37
|
+
`column1` CHAR(11) NOT NULL AUTO_INCREMENT,
|
38
38
|
`column2` DATETIME DEFAULT CURRENT_TIMESTAMP(),
|
39
39
|
`column3` VARCHAR(255) NOT NULL DEFAULT "a",
|
40
40
|
PRIMARY KEY (`column2`)
|
41
41
|
);
|
42
42
|
|
43
43
|
CREATE TABLE `table3` (
|
44
|
-
`column1` INTEGER(11) NOT NULL
|
44
|
+
`column1` INTEGER(11) NOT NULL AUTO_INCREMENT,
|
45
45
|
PRIMARY KEY (`column1`)
|
46
46
|
);
|
47
47
|
EOS
|
@@ -59,12 +59,12 @@ describe Scheman::Diff do
|
|
59
59
|
SET foreign_key_checks=0;
|
60
60
|
|
61
61
|
CREATE TABLE `table3` (
|
62
|
-
`column1` INTEGER(11) NOT NULL
|
62
|
+
`column1` INTEGER(11) NOT NULL AUTO_INCREMENT,
|
63
63
|
PRIMARY KEY (`column1`)
|
64
64
|
);
|
65
65
|
|
66
66
|
ALTER TABLE `table1` ADD COLUMN `column3` VARCHAR(255) NOT NULL DEFAULT "a",
|
67
|
-
CHANGE COLUMN `column1` CHAR(11) NOT NULL
|
67
|
+
CHANGE COLUMN `column1` CHAR(11) NOT NULL AUTO_INCREMENT,
|
68
68
|
DROP PRIMARY KEY,
|
69
69
|
ADD PRIMARY KEY `column2`;
|
70
70
|
|
@@ -29,7 +29,7 @@ describe Scheman::Parsers::Mysql do
|
|
29
29
|
CREATE DATABASE database_name;
|
30
30
|
|
31
31
|
CREATE TABLE `table1` (
|
32
|
-
`column1` INTEGER(11) NOT NULL
|
32
|
+
`column1` INTEGER(11) NOT NULL AUTO_INCREMENT,
|
33
33
|
`column2` VARCHAR(255) NOT NULL,
|
34
34
|
PRIMARY KEY (`column1`)
|
35
35
|
);
|
@@ -141,9 +141,9 @@ describe Scheman::Parsers::Mysql do
|
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
144
|
-
context "with
|
144
|
+
context "with AUTO_INCREMENT field qualifier" do
|
145
145
|
let(:str) do
|
146
|
-
"CREATE TABLE `table1` (`column1` INTEGER
|
146
|
+
"CREATE TABLE `table1` (`column1` INTEGER AUTO_INCREMENT);"
|
147
147
|
end
|
148
148
|
|
149
149
|
it "succeeds in parse" do
|
@@ -494,5 +494,65 @@ describe Scheman::Parsers::Mysql do
|
|
494
494
|
}
|
495
495
|
end
|
496
496
|
end
|
497
|
+
|
498
|
+
context "with empty string" do
|
499
|
+
let(:str) do
|
500
|
+
""
|
501
|
+
end
|
502
|
+
|
503
|
+
it "succeeds in parse" do
|
504
|
+
should == []
|
505
|
+
end
|
506
|
+
end
|
507
|
+
|
508
|
+
context "with multi-line comment" do
|
509
|
+
let(:str) do
|
510
|
+
"/ * xy * /"
|
511
|
+
end
|
512
|
+
|
513
|
+
it "succeeds in parse" do
|
514
|
+
should == []
|
515
|
+
end
|
516
|
+
end
|
517
|
+
|
518
|
+
context "with comment table option" do
|
519
|
+
let(:str) do
|
520
|
+
"CREATE TABLE `table1` (`column1` INTEGER) COMMENT='test';"
|
521
|
+
end
|
522
|
+
|
523
|
+
it "succeeds in parse" do
|
524
|
+
expect { subject }.not_to raise_error
|
525
|
+
end
|
526
|
+
end
|
527
|
+
|
528
|
+
context "with charset table option" do
|
529
|
+
let(:str) do
|
530
|
+
"CREATE TABLE `table1` (`column1` INTEGER) DEFAULT CHARSET=latin1;"
|
531
|
+
end
|
532
|
+
|
533
|
+
it "succeeds in parse" do
|
534
|
+
expect { subject }.not_to raise_error
|
535
|
+
end
|
536
|
+
end
|
537
|
+
|
538
|
+
context "with another charset table option" do
|
539
|
+
let(:str) do
|
540
|
+
"CREATE TABLE `table1` (`column1` INTEGER) CHARACTER SET=latin1;"
|
541
|
+
end
|
542
|
+
|
543
|
+
it "succeeds in parse" do
|
544
|
+
expect { subject }.not_to raise_error
|
545
|
+
end
|
546
|
+
end
|
547
|
+
|
548
|
+
context "with engine table option" do
|
549
|
+
let(:str) do
|
550
|
+
"CREATE TABLE `table1` (`column1` INTEGER) ENGINE=MyISAM AUTO_INCREMENT=1;"
|
551
|
+
end
|
552
|
+
|
553
|
+
it "succeeds in parse" do
|
554
|
+
expect { subject }.not_to raise_error
|
555
|
+
end
|
556
|
+
end
|
497
557
|
end
|
498
558
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scheman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: slop
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -97,7 +111,8 @@ dependencies:
|
|
97
111
|
description:
|
98
112
|
email:
|
99
113
|
- r7kamura@gmail.com
|
100
|
-
executables:
|
114
|
+
executables:
|
115
|
+
- scheman
|
101
116
|
extensions: []
|
102
117
|
extra_rdoc_files: []
|
103
118
|
files:
|
@@ -107,7 +122,11 @@ files:
|
|
107
122
|
- LICENSE.txt
|
108
123
|
- README.md
|
109
124
|
- Rakefile
|
125
|
+
- bin/scheman
|
110
126
|
- lib/scheman.rb
|
127
|
+
- lib/scheman/command_builder.rb
|
128
|
+
- lib/scheman/commands/base.rb
|
129
|
+
- lib/scheman/commands/diff.rb
|
111
130
|
- lib/scheman/diff.rb
|
112
131
|
- lib/scheman/errors.rb
|
113
132
|
- lib/scheman/parser_builder.rb
|
@@ -118,6 +137,7 @@ files:
|
|
118
137
|
- lib/scheman/views/base.rb
|
119
138
|
- lib/scheman/views/mysql.rb
|
120
139
|
- scheman.gemspec
|
140
|
+
- spec/fixtures/example1.sql
|
121
141
|
- spec/scheman/diff_spec.rb
|
122
142
|
- spec/scheman/parsers/mysql_spec.rb
|
123
143
|
- spec/spec_helper.rb
|
@@ -146,6 +166,7 @@ signing_key:
|
|
146
166
|
specification_version: 4
|
147
167
|
summary: SQL schema parser.
|
148
168
|
test_files:
|
169
|
+
- spec/fixtures/example1.sql
|
149
170
|
- spec/scheman/diff_spec.rb
|
150
171
|
- spec/scheman/parsers/mysql_spec.rb
|
151
172
|
- spec/spec_helper.rb
|