convergence 0.0.3 → 0.0.4
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/Gemfile.lock +1 -1
- data/lib/convergence/sql_generator/mysql_generator.rb +6 -6
- data/lib/convergence/version.rb +1 -1
- data/spec/fixtures/change_foreign_key.schema +24 -0
- data/spec/fixtures/drop_foreign_key.schema +22 -0
- data/spec/fixtures/test_db.sql +4 -0
- data/spec/integrations/command_dryrun.rb +2 -0
- data/spec/integrations/drop_foreign_key.rb +31 -0
- data/spec/spec_helper.rb +15 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cee0b72015626223c127eed7acc9c03bc22d6f43
|
4
|
+
data.tar.gz: 6808f1b1410f9d13cc16d262041a8bebce648032
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb06eb3d249a49e916da9504216c66ff5f0de9b7f91245dbdaa17c23d0c6ca855cd0bbb7967e17e1ed8eb47d441dd66de2c4c3e1b3dd30205d36611d049c4de0
|
7
|
+
data.tar.gz: f7e76021eda3071e9223ac80c175bfb2b79de681451c3cece17a26c38041013296cec5ba08a86b777c6890c23da63160c36abe8c0bc200de1ad74df5925ff0a5
|
data/Gemfile.lock
CHANGED
@@ -24,6 +24,12 @@ class SQLGenerator::MysqlGenerator < SQLGenerator
|
|
24
24
|
change_table = delta[:change_table]
|
25
25
|
results = []
|
26
26
|
change_table.each do |table_name, table_delta|
|
27
|
+
table_delta[:remove_foreign_key].each do |index_name, _foreign_key|
|
28
|
+
results << alter_remove_foreign_key_sql(table_name, index_name)
|
29
|
+
end
|
30
|
+
table_delta[:remove_index].each do |index_name, _index|
|
31
|
+
results << alter_remove_index_sql(table_name, index_name)
|
32
|
+
end
|
27
33
|
table_delta[:remove_column].each do |_column_name, column|
|
28
34
|
results << alter_remove_column_sql(table_name, column)
|
29
35
|
end
|
@@ -33,15 +39,9 @@ class SQLGenerator::MysqlGenerator < SQLGenerator
|
|
33
39
|
table_delta[:change_column].each do |column_name, column|
|
34
40
|
results << alter_change_column_sql(table_name, column_name, column, to_table)
|
35
41
|
end
|
36
|
-
table_delta[:remove_index].each do |index_name, _index|
|
37
|
-
results << alter_remove_index_sql(table_name, index_name)
|
38
|
-
end
|
39
42
|
table_delta[:add_index].each do |_index_name, index|
|
40
43
|
results << alter_add_index_sql(table_name, index)
|
41
44
|
end
|
42
|
-
table_delta[:remove_foreign_key].each do |index_name, _foreign_key|
|
43
|
-
results << alter_remove_foreign_key_sql(table_name, index_name)
|
44
|
-
end
|
45
45
|
table_delta[:add_foreign_key].each do |_index_name, foreign_key|
|
46
46
|
results << alter_add_foreign_key_sql(table_name, foreign_key)
|
47
47
|
end
|
data/lib/convergence/version.rb
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
create_table "authors", collate: "utf8_general_ci", comment: "" do |t|
|
2
|
+
t.int "id", primary_key: true, extra: "auto_increment"
|
3
|
+
t.varchar "name", limit: 110
|
4
|
+
t.datetime "created_at", null: true
|
5
|
+
t.datetime "updated_at", null: true
|
6
|
+
|
7
|
+
t.index "created_at", name: "index_authors_on_created_at"
|
8
|
+
end
|
9
|
+
|
10
|
+
create_table "papers", collate: "utf8_general_ci", comment: "Paper" do |t|
|
11
|
+
t.int "id", primary_key: true, extra: "auto_increment"
|
12
|
+
t.varchar "title1", limit: 300, comment: "Title 1"
|
13
|
+
t.varchar "title2", limit: 300, comment: "Title 2"
|
14
|
+
t.text "description", null: true, comment: "Description"
|
15
|
+
end
|
16
|
+
|
17
|
+
create_table "paper_authors", collate: "utf8_general_ci", comment: "Paper Author Relation" do |t|
|
18
|
+
t.int "id", primary_key: true, extra: "auto_increment"
|
19
|
+
t.int "paper_id2", comment: "Paper id"
|
20
|
+
t.int "author_id2", comment: "Paper author id"
|
21
|
+
|
22
|
+
t.foreign_key "author_id2", reference: "authors", reference_column: "id", name: "paper_authors_author_id_fk"
|
23
|
+
t.foreign_key "paper_id2", reference: "papers", reference_column: "id", name: "paper_authors_paper_id_fk"
|
24
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
create_table "authors", collate: "utf8_general_ci", comment: "" do |t|
|
2
|
+
t.int "id", primary_key: true, extra: "auto_increment"
|
3
|
+
t.varchar "name", limit: 110
|
4
|
+
t.datetime "created_at", null: true
|
5
|
+
t.datetime "updated_at", null: true
|
6
|
+
|
7
|
+
t.index "created_at", name: "index_authors_on_created_at"
|
8
|
+
end
|
9
|
+
|
10
|
+
create_table "papers", collate: "utf8_general_ci", comment: "Paper" do |t|
|
11
|
+
t.int "id", primary_key: true, extra: "auto_increment"
|
12
|
+
t.varchar "title1", limit: 300, comment: "Title 1"
|
13
|
+
t.varchar "title2", limit: 300, comment: "Title 2"
|
14
|
+
t.text "description", null: true, comment: "Description"
|
15
|
+
end
|
16
|
+
|
17
|
+
create_table "paper_authors", collate: "utf8_general_ci", comment: "Paper Author Relation" do |t|
|
18
|
+
t.int "id", primary_key: true, extra: "auto_increment"
|
19
|
+
t.int "paper_id", comment: "Paper id"
|
20
|
+
t.int "author_id", comment: "Paper author id"
|
21
|
+
end
|
22
|
+
|
data/spec/fixtures/test_db.sql
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Changeable Foreign key' do
|
4
|
+
after(:each) do
|
5
|
+
rollback
|
6
|
+
end
|
7
|
+
|
8
|
+
def execute(dsl_path)
|
9
|
+
parse_option = {
|
10
|
+
apply: true,
|
11
|
+
input: File.expand_path("#{File.dirname(__FILE__)}/../fixtures/#{dsl_path}")
|
12
|
+
}
|
13
|
+
Convergence::Command.new(parse_option, config: mysql_settings).execute
|
14
|
+
end
|
15
|
+
|
16
|
+
describe 'drop foreign key' do
|
17
|
+
let(:exec_dsl) { 'drop_foreign_key.schema' }
|
18
|
+
|
19
|
+
it 'should be drop foreign key' do
|
20
|
+
expect { execute(exec_dsl) }.not_to raise_error
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'change foreign key' do
|
25
|
+
let(:exec_dsl) { 'change_foreign_key.schema' }
|
26
|
+
|
27
|
+
it 'should be drop foreign key' do
|
28
|
+
expect { execute(exec_dsl) }.not_to raise_error
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -12,6 +12,21 @@ def mysql_settings
|
|
12
12
|
Convergence::Config.new(Hash[mysql_settings.map { |k, v| [k.to_sym, v] }])
|
13
13
|
end
|
14
14
|
|
15
|
+
def rollback
|
16
|
+
# FIXME But I have no idea to rollback create/drop/alter table of mysql
|
17
|
+
sqls = File.open("#{File.dirname(__FILE__)}/fixtures/test_db.sql")
|
18
|
+
.read
|
19
|
+
.split(';')
|
20
|
+
.map(&:strip)
|
21
|
+
.reject(&:empty?)
|
22
|
+
sqls.each do |sql|
|
23
|
+
Convergence::Command.new({}, config: mysql_settings)
|
24
|
+
.connector
|
25
|
+
.client
|
26
|
+
.query("#{sql};")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
15
30
|
RSpec.configure do |config|
|
16
31
|
config.filter_run :focus
|
17
32
|
config.run_all_when_everything_filtered = true
|
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.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shinsuke Nishio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mysql2
|
@@ -219,11 +219,14 @@ files:
|
|
219
219
|
- spec/fixtures/add_columns_to_paper.schema
|
220
220
|
- spec/fixtures/add_table.schema
|
221
221
|
- spec/fixtures/change_comment_columns_to_paper.schema
|
222
|
+
- spec/fixtures/change_foreign_key.schema
|
222
223
|
- spec/fixtures/change_table_comment_to_paper.schema
|
224
|
+
- spec/fixtures/drop_foreign_key.schema
|
223
225
|
- spec/fixtures/drop_table.schema
|
224
226
|
- spec/fixtures/remove_columns_to_paper.schema
|
225
227
|
- spec/fixtures/test_db.sql
|
226
228
|
- spec/integrations/command_dryrun.rb
|
229
|
+
- spec/integrations/drop_foreign_key.rb
|
227
230
|
- spec/spec_helper.rb
|
228
231
|
homepage: https://github.com/nishio-dens/convergence
|
229
232
|
licenses:
|
@@ -259,9 +262,12 @@ test_files:
|
|
259
262
|
- spec/fixtures/add_columns_to_paper.schema
|
260
263
|
- spec/fixtures/add_table.schema
|
261
264
|
- spec/fixtures/change_comment_columns_to_paper.schema
|
265
|
+
- spec/fixtures/change_foreign_key.schema
|
262
266
|
- spec/fixtures/change_table_comment_to_paper.schema
|
267
|
+
- spec/fixtures/drop_foreign_key.schema
|
263
268
|
- spec/fixtures/drop_table.schema
|
264
269
|
- spec/fixtures/remove_columns_to_paper.schema
|
265
270
|
- spec/fixtures/test_db.sql
|
266
271
|
- spec/integrations/command_dryrun.rb
|
272
|
+
- spec/integrations/drop_foreign_key.rb
|
267
273
|
- spec/spec_helper.rb
|