convergence 1.0.6 → 1.2.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/.github/workflows/ruby.yml +35 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +57 -0
- data/CONTRIBUTING.md +80 -0
- data/Gemfile.lock +25 -9
- data/README.md +160 -1
- data/Rakefile +45 -2
- data/convergence.gemspec +5 -1
- data/lib/convergence/cli.rb +10 -2
- data/lib/convergence/column.rb +3 -2
- data/lib/convergence/command/apply.rb +38 -9
- data/lib/convergence/command/dryrun.rb +5 -5
- data/lib/convergence/command/export.rb +19 -1
- data/lib/convergence/command.rb +6 -0
- data/lib/convergence/database_connector/postgres_connector.rb +25 -0
- data/lib/convergence/database_connector/sqlite_connector.rb +22 -0
- data/lib/convergence/database_connector.rb +6 -0
- data/lib/convergence/default_parameter/mysql_default_parameter.rb +1 -1
- data/lib/convergence/default_parameter/postgres_default_parameter.rb +57 -0
- data/lib/convergence/default_parameter/sqlite_default_parameter.rb +57 -0
- data/lib/convergence/default_parameter.rb +6 -0
- data/lib/convergence/diff.rb +46 -3
- data/lib/convergence/dsl.rb +18 -3
- data/lib/convergence/dumper/mysql_schema_dumper.rb +37 -9
- data/lib/convergence/dumper/postgres_schema_dumper.rb +193 -0
- data/lib/convergence/dumper/sqlite_schema_dumper.rb +132 -0
- data/lib/convergence/dumper.rb +113 -0
- data/lib/convergence/sql_generator/mysql_generator.rb +32 -3
- data/lib/convergence/sql_generator/postgres_generator.rb +270 -0
- data/lib/convergence/sql_generator/sqlite_generator.rb +192 -0
- data/lib/convergence/table.rb +3 -2
- data/lib/convergence/version.rb +1 -1
- data/spec/config/spec_database.yml +12 -0
- data/spec/convergence/config_spec.rb +75 -0
- data/spec/convergence/diff_spec.rb +291 -44
- data/spec/convergence/dsl_spec.rb +26 -0
- data/spec/convergence/dumper/mysql_schema_dumper_spec.rb +25 -2
- data/spec/convergence/dumper/postgres_schema_dumper_spec.rb +103 -0
- data/spec/convergence/dumper/sqlite_schema_dumper_spec.rb +85 -0
- data/spec/convergence/dumper_spec.rb +110 -16
- data/spec/convergence/foreign_key_spec.rb +33 -0
- data/spec/convergence/index_spec.rb +52 -0
- data/spec/convergence/pretty_diff_spec.rb +85 -0
- data/spec/convergence/table_spec.rb +46 -0
- data/spec/fixtures/add_table_with_enum_set.schema +5 -0
- data/spec/fixtures/change_table_comment_to_paper.schema +2 -0
- data/spec/fixtures/execute_raw_sql.schema +28 -0
- data/spec/fixtures/postgres/add_columns_to_paper.schema +29 -0
- data/spec/fixtures/postgres/add_table.schema +32 -0
- data/spec/fixtures/postgres/change_comment_columns_to_paper.schema +28 -0
- data/spec/fixtures/postgres/change_table_comment_to_paper.schema +28 -0
- data/spec/fixtures/postgres/drop_foreign_key.schema +25 -0
- data/spec/fixtures/postgres/drop_table.schema +19 -0
- data/spec/fixtures/postgres/remove_columns_to_paper.schema +27 -0
- data/spec/fixtures/postgres/rename_column_on_paper.schema +28 -0
- data/spec/fixtures/postgres/rename_table.schema +28 -0
- data/spec/fixtures/postgres_test_db.sql +41 -0
- data/spec/fixtures/rename_column_to_author.schema +26 -0
- data/spec/fixtures/rename_table.schema +26 -0
- data/spec/fixtures/sqlite/add_columns_to_paper.schema +29 -0
- data/spec/fixtures/sqlite/add_table.schema +32 -0
- data/spec/fixtures/sqlite/change_columns_to_paper.schema +28 -0
- data/spec/fixtures/sqlite/drop_foreign_key.schema +25 -0
- data/spec/fixtures/sqlite/drop_table.schema +19 -0
- data/spec/fixtures/sqlite/remove_columns_to_paper.schema +27 -0
- data/spec/fixtures/sqlite/rename_column_on_paper.schema +28 -0
- data/spec/fixtures/sqlite/rename_table.schema +27 -0
- data/spec/fixtures/sqlite_test_db.sql +31 -0
- data/spec/fixtures/test_db.sql +10 -0
- data/spec/integrations/command_diff.rb +35 -0
- data/spec/integrations/command_dryrun.rb +59 -2
- data/spec/integrations/command_export.rb +28 -0
- data/spec/postgres_integrations/command_dryrun.rb +101 -0
- data/spec/spec_helper.rb +13 -0
- data/spec/sqlite_integrations/command_dryrun.rb +92 -0
- metadata +135 -7
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'convergence/command/dryrun'
|
|
3
|
+
|
|
4
|
+
describe 'PostgreSQL Command::Dryrun#execute' do
|
|
5
|
+
def execute(dsl_path, extra_options = {})
|
|
6
|
+
parse_option = {
|
|
7
|
+
input: File.expand_path("#{File.dirname(__FILE__)}/../fixtures/postgres/#{dsl_path}")
|
|
8
|
+
}.merge(extra_options)
|
|
9
|
+
Convergence::Command::Dryrun.new(parse_option, config: postgres_settings).execute
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe 'change table options' do
|
|
13
|
+
let(:exec_dsl) { 'change_table_comment_to_paper.schema' }
|
|
14
|
+
|
|
15
|
+
it 'should be output alter table query' do
|
|
16
|
+
result = execute(exec_dsl)
|
|
17
|
+
expect(result).to be_include(%(# COMMENT ON TABLE "authors" IS 'Author Table';))
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe 'add table' do
|
|
22
|
+
let(:exec_dsl) { 'add_table.schema' }
|
|
23
|
+
|
|
24
|
+
it 'should be output create table query' do
|
|
25
|
+
result = execute(exec_dsl)
|
|
26
|
+
expect(result).to be_include(%(# "id" integer NOT NULL GENERATED BY DEFAULT AS IDENTITY,))
|
|
27
|
+
expect(result).to be_include(%(# COMMENT ON TABLE "dummies" IS 'Dummy Table';))
|
|
28
|
+
expect(result).to be_include(%(# COMMENT ON COLUMN "dummies"."id" IS 'Hello Convergence';))
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
describe 'drop table' do
|
|
33
|
+
let(:exec_dsl) { 'drop_table.schema' }
|
|
34
|
+
|
|
35
|
+
it 'should be output drop table query' do
|
|
36
|
+
result = execute(exec_dsl)
|
|
37
|
+
expect(result).to be_include('DROP TABLE "paper_authors";')
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe 'add columns' do
|
|
42
|
+
let(:exec_dsl) { 'add_columns_to_paper.schema' }
|
|
43
|
+
|
|
44
|
+
it 'should be output alter add column query' do
|
|
45
|
+
result = execute(exec_dsl)
|
|
46
|
+
expect(result).to be_include(%(# ALTER TABLE "papers" ADD COLUMN "subtitle" varchar DEFAULT NULL;))
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
describe 'remove columns' do
|
|
51
|
+
let(:exec_dsl) { 'remove_columns_to_paper.schema' }
|
|
52
|
+
|
|
53
|
+
it 'should be output alter drop column query' do
|
|
54
|
+
result = execute(exec_dsl)
|
|
55
|
+
expect(result).to be_include(%(# ALTER TABLE "papers" DROP COLUMN "description";))
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
describe 'change columns' do
|
|
60
|
+
describe 'change comment' do
|
|
61
|
+
let(:exec_dsl) { 'change_comment_columns_to_paper.schema' }
|
|
62
|
+
|
|
63
|
+
it 'should be output alter table column query' do
|
|
64
|
+
result = execute(exec_dsl)
|
|
65
|
+
expect(result).to be_include(%(# COMMENT ON COLUMN "authors"."created_at" IS 'Created At';))
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
describe 'rename column' do
|
|
71
|
+
let(:exec_dsl) { 'rename_column_on_paper.schema' }
|
|
72
|
+
|
|
73
|
+
it 'should be output rename column query, not drop+add' do
|
|
74
|
+
result = execute(exec_dsl)
|
|
75
|
+
expect(result).to be_include(%(# ALTER TABLE "papers" RENAME COLUMN "description" TO "notes";))
|
|
76
|
+
expect(result).not_to be_include('DROP COLUMN "description"')
|
|
77
|
+
expect(result).not_to be_include('ADD COLUMN "notes"')
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
describe 'rename table' do
|
|
82
|
+
let(:exec_dsl) { 'rename_table.schema' }
|
|
83
|
+
|
|
84
|
+
it 'should be output rename table query, not drop+add' do
|
|
85
|
+
result = execute(exec_dsl)
|
|
86
|
+
expect(result).to be_include(%(# ALTER TABLE "paper_authors" RENAME TO "paper_author_links";))
|
|
87
|
+
expect(result).not_to be_include('DROP TABLE "paper_authors"')
|
|
88
|
+
expect(result).not_to be_include('CREATE TABLE "paper_author_links"')
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
describe 'drop foreign key' do
|
|
93
|
+
let(:exec_dsl) { 'drop_foreign_key.schema' }
|
|
94
|
+
|
|
95
|
+
it 'should be output drop foreign key query' do
|
|
96
|
+
result = execute(exec_dsl)
|
|
97
|
+
expect(result).to be_include(%(# ALTER TABLE "paper_authors" DROP CONSTRAINT "paper_authors_author_id_fk";))
|
|
98
|
+
expect(result).to be_include(%(# ALTER TABLE "paper_authors" DROP CONSTRAINT "paper_authors_paper_id_fk";))
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -5,6 +5,8 @@ require 'pry'
|
|
|
5
5
|
require 'convergence'
|
|
6
6
|
require 'convergence/database_connector'
|
|
7
7
|
Dir["#{File.dirname(__FILE__)}/integrations/**/*.rb"].each { |f| require f }
|
|
8
|
+
Dir["#{File.dirname(__FILE__)}/postgres_integrations/**/*.rb"].each { |f| require f }
|
|
9
|
+
Dir["#{File.dirname(__FILE__)}/sqlite_integrations/**/*.rb"].each { |f| require f }
|
|
8
10
|
|
|
9
11
|
$default_output = File.open('/dev/null', 'w')
|
|
10
12
|
|
|
@@ -13,6 +15,17 @@ def mysql_settings
|
|
|
13
15
|
Convergence::Config.new(Hash[mysql_settings.map { |k, v| [k.to_sym, v] }])
|
|
14
16
|
end
|
|
15
17
|
|
|
18
|
+
def postgres_settings
|
|
19
|
+
postgres_settings = YAML.load_file("#{File.dirname(__FILE__)}/config/spec_database.yml")['postgresql']
|
|
20
|
+
Convergence::Config.new(Hash[postgres_settings.map { |k, v| [k.to_sym, v] }])
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def sqlite_settings
|
|
24
|
+
sqlite_settings = YAML.load_file("#{File.dirname(__FILE__)}/config/spec_database.yml")['sqlite3']
|
|
25
|
+
database_path = File.expand_path("#{File.dirname(__FILE__)}/fixtures/#{sqlite_settings['database']}")
|
|
26
|
+
Convergence::Config.new(adapter: sqlite_settings['adapter'], database: database_path)
|
|
27
|
+
end
|
|
28
|
+
|
|
16
29
|
def rollback
|
|
17
30
|
# FIXME But I have no idea to rollback create/drop/alter table of mysql
|
|
18
31
|
sqls = File.open("#{File.dirname(__FILE__)}/fixtures/test_db.sql")
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'convergence/command/dryrun'
|
|
3
|
+
|
|
4
|
+
describe 'SQLite Command::Dryrun#execute' do
|
|
5
|
+
def execute(dsl_path, extra_options = {})
|
|
6
|
+
parse_option = {
|
|
7
|
+
input: File.expand_path("#{File.dirname(__FILE__)}/../fixtures/sqlite/#{dsl_path}")
|
|
8
|
+
}.merge(extra_options)
|
|
9
|
+
Convergence::Command::Dryrun.new(parse_option, config: sqlite_settings).execute
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe 'add table' do
|
|
13
|
+
let(:exec_dsl) { 'add_table.schema' }
|
|
14
|
+
|
|
15
|
+
it 'should be output create table query' do
|
|
16
|
+
result = execute(exec_dsl)
|
|
17
|
+
expect(result).to be_include(%(# CREATE TABLE "dummies" (\n# "id" INTEGER PRIMARY KEY AUTOINCREMENT\n# );))
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe 'drop table' do
|
|
22
|
+
let(:exec_dsl) { 'drop_table.schema' }
|
|
23
|
+
|
|
24
|
+
it 'should be output drop table query' do
|
|
25
|
+
result = execute(exec_dsl)
|
|
26
|
+
expect(result).to be_include('DROP TABLE "paper_authors";')
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
context 'when safe_migration is enabled' do
|
|
30
|
+
it 'should not output drop table query' do
|
|
31
|
+
result = execute(exec_dsl, safe_migration: true)
|
|
32
|
+
expect(result).not_to be_include('DROP TABLE "paper_authors";')
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe 'add columns' do
|
|
38
|
+
let(:exec_dsl) { 'add_columns_to_paper.schema' }
|
|
39
|
+
|
|
40
|
+
it 'should be output alter add column query' do
|
|
41
|
+
result = execute(exec_dsl)
|
|
42
|
+
expect(result).to be_include(%(# ALTER TABLE "papers" ADD COLUMN "subtitle" varchar;))
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
describe 'remove columns' do
|
|
47
|
+
let(:exec_dsl) { 'remove_columns_to_paper.schema' }
|
|
48
|
+
|
|
49
|
+
it 'should be output alter drop column query' do
|
|
50
|
+
result = execute(exec_dsl)
|
|
51
|
+
expect(result).to be_include(%(# ALTER TABLE "papers" DROP COLUMN "description";))
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
describe 'change columns' do
|
|
56
|
+
let(:exec_dsl) { 'change_columns_to_paper.schema' }
|
|
57
|
+
|
|
58
|
+
it 'should raise NotImplementedError since SQLite cannot ALTER a column in place' do
|
|
59
|
+
expect { execute(exec_dsl) }.to raise_error(NotImplementedError, /does not support changing column/)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
describe 'rename column' do
|
|
64
|
+
let(:exec_dsl) { 'rename_column_on_paper.schema' }
|
|
65
|
+
|
|
66
|
+
it 'should be output rename column query, not drop+add' do
|
|
67
|
+
result = execute(exec_dsl)
|
|
68
|
+
expect(result).to be_include(%(# ALTER TABLE "papers" RENAME COLUMN "description" TO "notes";))
|
|
69
|
+
expect(result).not_to be_include('DROP COLUMN "description"')
|
|
70
|
+
expect(result).not_to be_include('ADD COLUMN "notes"')
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
describe 'rename table' do
|
|
75
|
+
let(:exec_dsl) { 'rename_table.schema' }
|
|
76
|
+
|
|
77
|
+
it 'should be output rename table query, not drop+add' do
|
|
78
|
+
result = execute(exec_dsl)
|
|
79
|
+
expect(result).to be_include(%(# ALTER TABLE "paper_authors" RENAME TO "paper_author_links";))
|
|
80
|
+
expect(result).not_to be_include('DROP TABLE "paper_authors"')
|
|
81
|
+
expect(result).not_to be_include('CREATE TABLE "paper_author_links"')
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
describe 'drop foreign key' do
|
|
86
|
+
let(:exec_dsl) { 'drop_foreign_key.schema' }
|
|
87
|
+
|
|
88
|
+
it 'should raise NotImplementedError since SQLite cannot drop a foreign key in place' do
|
|
89
|
+
expect { execute(exec_dsl) }.to raise_error(NotImplementedError, /does not support removing a foreign key/)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: convergence
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shinsuke Nishio
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: mysql2
|
|
@@ -24,6 +23,34 @@ dependencies:
|
|
|
24
23
|
- - ">="
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
25
|
version: '0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: pg
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: sqlite3
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
27
54
|
- !ruby/object:Gem::Dependency
|
|
28
55
|
name: diff-lcs
|
|
29
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -40,6 +67,20 @@ dependencies:
|
|
|
40
67
|
version: '0'
|
|
41
68
|
- !ruby/object:Gem::Dependency
|
|
42
69
|
name: diffy
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 3.4.2
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 3.4.2
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: thor
|
|
43
84
|
requirement: !ruby/object:Gem::Requirement
|
|
44
85
|
requirements:
|
|
45
86
|
- - ">="
|
|
@@ -53,7 +94,21 @@ dependencies:
|
|
|
53
94
|
- !ruby/object:Gem::Version
|
|
54
95
|
version: '0'
|
|
55
96
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
97
|
+
name: logger
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
103
|
+
type: :runtime
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
110
|
+
- !ruby/object:Gem::Dependency
|
|
111
|
+
name: benchmark
|
|
57
112
|
requirement: !ruby/object:Gem::Requirement
|
|
58
113
|
requirements:
|
|
59
114
|
- - ">="
|
|
@@ -163,6 +218,7 @@ files:
|
|
|
163
218
|
- ".rspec"
|
|
164
219
|
- ".rubocop.yml"
|
|
165
220
|
- CHANGELOG.md
|
|
221
|
+
- CONTRIBUTING.md
|
|
166
222
|
- Gemfile
|
|
167
223
|
- Gemfile.lock
|
|
168
224
|
- Guardfile
|
|
@@ -184,12 +240,18 @@ files:
|
|
|
184
240
|
- lib/convergence/config.rb
|
|
185
241
|
- lib/convergence/database_connector.rb
|
|
186
242
|
- lib/convergence/database_connector/mysql_connector.rb
|
|
243
|
+
- lib/convergence/database_connector/postgres_connector.rb
|
|
244
|
+
- lib/convergence/database_connector/sqlite_connector.rb
|
|
187
245
|
- lib/convergence/default_parameter.rb
|
|
188
246
|
- lib/convergence/default_parameter/mysql_default_parameter.rb
|
|
247
|
+
- lib/convergence/default_parameter/postgres_default_parameter.rb
|
|
248
|
+
- lib/convergence/default_parameter/sqlite_default_parameter.rb
|
|
189
249
|
- lib/convergence/diff.rb
|
|
190
250
|
- lib/convergence/dsl.rb
|
|
191
251
|
- lib/convergence/dumper.rb
|
|
192
252
|
- lib/convergence/dumper/mysql_schema_dumper.rb
|
|
253
|
+
- lib/convergence/dumper/postgres_schema_dumper.rb
|
|
254
|
+
- lib/convergence/dumper/sqlite_schema_dumper.rb
|
|
193
255
|
- lib/convergence/foreign_key.rb
|
|
194
256
|
- lib/convergence/index.rb
|
|
195
257
|
- lib/convergence/logger.rb
|
|
@@ -197,31 +259,65 @@ files:
|
|
|
197
259
|
- lib/convergence/pretty_diff.rb
|
|
198
260
|
- lib/convergence/sql_generator.rb
|
|
199
261
|
- lib/convergence/sql_generator/mysql_generator.rb
|
|
262
|
+
- lib/convergence/sql_generator/postgres_generator.rb
|
|
263
|
+
- lib/convergence/sql_generator/sqlite_generator.rb
|
|
200
264
|
- lib/convergence/table.rb
|
|
201
265
|
- lib/convergence/version.rb
|
|
202
266
|
- spec/config/spec_database.yml
|
|
267
|
+
- spec/convergence/config_spec.rb
|
|
203
268
|
- spec/convergence/diff_spec.rb
|
|
204
269
|
- spec/convergence/dsl_spec.rb
|
|
205
270
|
- spec/convergence/dumper/mysql_schema_dumper_spec.rb
|
|
271
|
+
- spec/convergence/dumper/postgres_schema_dumper_spec.rb
|
|
272
|
+
- spec/convergence/dumper/sqlite_schema_dumper_spec.rb
|
|
206
273
|
- spec/convergence/dumper_spec.rb
|
|
274
|
+
- spec/convergence/foreign_key_spec.rb
|
|
275
|
+
- spec/convergence/index_spec.rb
|
|
276
|
+
- spec/convergence/pretty_diff_spec.rb
|
|
207
277
|
- spec/convergence/table_spec.rb
|
|
208
278
|
- spec/fixtures/add_columns_to_paper.schema
|
|
209
279
|
- spec/fixtures/add_table.schema
|
|
280
|
+
- spec/fixtures/add_table_with_enum_set.schema
|
|
210
281
|
- spec/fixtures/change_comment_columns_to_paper.schema
|
|
211
282
|
- spec/fixtures/change_foreign_key.schema
|
|
212
283
|
- spec/fixtures/change_table_comment_to_paper.schema
|
|
213
284
|
- spec/fixtures/drop_foreign_key.schema
|
|
214
285
|
- spec/fixtures/drop_table.schema
|
|
286
|
+
- spec/fixtures/execute_raw_sql.schema
|
|
287
|
+
- spec/fixtures/postgres/add_columns_to_paper.schema
|
|
288
|
+
- spec/fixtures/postgres/add_table.schema
|
|
289
|
+
- spec/fixtures/postgres/change_comment_columns_to_paper.schema
|
|
290
|
+
- spec/fixtures/postgres/change_table_comment_to_paper.schema
|
|
291
|
+
- spec/fixtures/postgres/drop_foreign_key.schema
|
|
292
|
+
- spec/fixtures/postgres/drop_table.schema
|
|
293
|
+
- spec/fixtures/postgres/remove_columns_to_paper.schema
|
|
294
|
+
- spec/fixtures/postgres/rename_column_on_paper.schema
|
|
295
|
+
- spec/fixtures/postgres/rename_table.schema
|
|
296
|
+
- spec/fixtures/postgres_test_db.sql
|
|
215
297
|
- spec/fixtures/remove_columns_to_paper.schema
|
|
298
|
+
- spec/fixtures/rename_column_to_author.schema
|
|
299
|
+
- spec/fixtures/rename_table.schema
|
|
300
|
+
- spec/fixtures/sqlite/add_columns_to_paper.schema
|
|
301
|
+
- spec/fixtures/sqlite/add_table.schema
|
|
302
|
+
- spec/fixtures/sqlite/change_columns_to_paper.schema
|
|
303
|
+
- spec/fixtures/sqlite/drop_foreign_key.schema
|
|
304
|
+
- spec/fixtures/sqlite/drop_table.schema
|
|
305
|
+
- spec/fixtures/sqlite/remove_columns_to_paper.schema
|
|
306
|
+
- spec/fixtures/sqlite/rename_column_on_paper.schema
|
|
307
|
+
- spec/fixtures/sqlite/rename_table.schema
|
|
308
|
+
- spec/fixtures/sqlite_test_db.sql
|
|
216
309
|
- spec/fixtures/test_db.sql
|
|
310
|
+
- spec/integrations/command_diff.rb
|
|
217
311
|
- spec/integrations/command_dryrun.rb
|
|
312
|
+
- spec/integrations/command_export.rb
|
|
218
313
|
- spec/integrations/drop_foreign_key.rb
|
|
314
|
+
- spec/postgres_integrations/command_dryrun.rb
|
|
219
315
|
- spec/spec_helper.rb
|
|
316
|
+
- spec/sqlite_integrations/command_dryrun.rb
|
|
220
317
|
homepage: https://github.com/nishio-dens/convergence
|
|
221
318
|
licenses:
|
|
222
319
|
- MIT
|
|
223
320
|
metadata: {}
|
|
224
|
-
post_install_message:
|
|
225
321
|
rdoc_options: []
|
|
226
322
|
require_paths:
|
|
227
323
|
- lib
|
|
@@ -236,26 +332,58 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
236
332
|
- !ruby/object:Gem::Version
|
|
237
333
|
version: '0'
|
|
238
334
|
requirements: []
|
|
239
|
-
rubygems_version:
|
|
240
|
-
signing_key:
|
|
335
|
+
rubygems_version: 4.0.3
|
|
241
336
|
specification_version: 4
|
|
242
337
|
summary: DB Schema management tool
|
|
243
338
|
test_files:
|
|
244
339
|
- spec/config/spec_database.yml
|
|
340
|
+
- spec/convergence/config_spec.rb
|
|
245
341
|
- spec/convergence/diff_spec.rb
|
|
246
342
|
- spec/convergence/dsl_spec.rb
|
|
247
343
|
- spec/convergence/dumper/mysql_schema_dumper_spec.rb
|
|
344
|
+
- spec/convergence/dumper/postgres_schema_dumper_spec.rb
|
|
345
|
+
- spec/convergence/dumper/sqlite_schema_dumper_spec.rb
|
|
248
346
|
- spec/convergence/dumper_spec.rb
|
|
347
|
+
- spec/convergence/foreign_key_spec.rb
|
|
348
|
+
- spec/convergence/index_spec.rb
|
|
349
|
+
- spec/convergence/pretty_diff_spec.rb
|
|
249
350
|
- spec/convergence/table_spec.rb
|
|
250
351
|
- spec/fixtures/add_columns_to_paper.schema
|
|
251
352
|
- spec/fixtures/add_table.schema
|
|
353
|
+
- spec/fixtures/add_table_with_enum_set.schema
|
|
252
354
|
- spec/fixtures/change_comment_columns_to_paper.schema
|
|
253
355
|
- spec/fixtures/change_foreign_key.schema
|
|
254
356
|
- spec/fixtures/change_table_comment_to_paper.schema
|
|
255
357
|
- spec/fixtures/drop_foreign_key.schema
|
|
256
358
|
- spec/fixtures/drop_table.schema
|
|
359
|
+
- spec/fixtures/execute_raw_sql.schema
|
|
360
|
+
- spec/fixtures/postgres/add_columns_to_paper.schema
|
|
361
|
+
- spec/fixtures/postgres/add_table.schema
|
|
362
|
+
- spec/fixtures/postgres/change_comment_columns_to_paper.schema
|
|
363
|
+
- spec/fixtures/postgres/change_table_comment_to_paper.schema
|
|
364
|
+
- spec/fixtures/postgres/drop_foreign_key.schema
|
|
365
|
+
- spec/fixtures/postgres/drop_table.schema
|
|
366
|
+
- spec/fixtures/postgres/remove_columns_to_paper.schema
|
|
367
|
+
- spec/fixtures/postgres/rename_column_on_paper.schema
|
|
368
|
+
- spec/fixtures/postgres/rename_table.schema
|
|
369
|
+
- spec/fixtures/postgres_test_db.sql
|
|
257
370
|
- spec/fixtures/remove_columns_to_paper.schema
|
|
371
|
+
- spec/fixtures/rename_column_to_author.schema
|
|
372
|
+
- spec/fixtures/rename_table.schema
|
|
373
|
+
- spec/fixtures/sqlite/add_columns_to_paper.schema
|
|
374
|
+
- spec/fixtures/sqlite/add_table.schema
|
|
375
|
+
- spec/fixtures/sqlite/change_columns_to_paper.schema
|
|
376
|
+
- spec/fixtures/sqlite/drop_foreign_key.schema
|
|
377
|
+
- spec/fixtures/sqlite/drop_table.schema
|
|
378
|
+
- spec/fixtures/sqlite/remove_columns_to_paper.schema
|
|
379
|
+
- spec/fixtures/sqlite/rename_column_on_paper.schema
|
|
380
|
+
- spec/fixtures/sqlite/rename_table.schema
|
|
381
|
+
- spec/fixtures/sqlite_test_db.sql
|
|
258
382
|
- spec/fixtures/test_db.sql
|
|
383
|
+
- spec/integrations/command_diff.rb
|
|
259
384
|
- spec/integrations/command_dryrun.rb
|
|
385
|
+
- spec/integrations/command_export.rb
|
|
260
386
|
- spec/integrations/drop_foreign_key.rb
|
|
387
|
+
- spec/postgres_integrations/command_dryrun.rb
|
|
261
388
|
- spec/spec_helper.rb
|
|
389
|
+
- spec/sqlite_integrations/command_dryrun.rb
|