dbsketch 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +674 -0
- data/README.md +1 -0
- data/lib/dbsketch.rb +64 -0
- data/lib/dbsketch/automation/automation_error.rb +15 -0
- data/lib/dbsketch/automation/database_connection_details.rb +32 -0
- data/lib/dbsketch/automation/database_importer.rb +184 -0
- data/lib/dbsketch/automation/database_proxy.rb +78 -0
- data/lib/dbsketch/automation/table_importer.rb +114 -0
- data/lib/dbsketch/comparison/check_constraint_comparator.rb +54 -0
- data/lib/dbsketch/comparison/column_comparator.rb +65 -0
- data/lib/dbsketch/comparison/comparison_error.rb +15 -0
- data/lib/dbsketch/comparison/computed_column_comparator.rb +63 -0
- data/lib/dbsketch/comparison/database_comparator.rb +115 -0
- data/lib/dbsketch/comparison/diff.rb +37 -0
- data/lib/dbsketch/comparison/foreign_key_comparator.rb +56 -0
- data/lib/dbsketch/comparison/function_comparator.rb +56 -0
- data/lib/dbsketch/comparison/index_comparator.rb +65 -0
- data/lib/dbsketch/comparison/primary_key_comparator.rb +61 -0
- data/lib/dbsketch/comparison/procedure_comparator.rb +54 -0
- data/lib/dbsketch/comparison/table_comparator.rb +158 -0
- data/lib/dbsketch/comparison/trigger_comparator.rb +53 -0
- data/lib/dbsketch/comparison/type_comparator.rb +51 -0
- data/lib/dbsketch/comparison/unique_constraint_comparator.rb +58 -0
- data/lib/dbsketch/comparison/view_comparator.rb +54 -0
- data/lib/dbsketch/model/abstract_column.rb +25 -0
- data/lib/dbsketch/model/check_constraint.rb +23 -0
- data/lib/dbsketch/model/column.rb +35 -0
- data/lib/dbsketch/model/computed_column.rb +27 -0
- data/lib/dbsketch/model/custom_code.rb +21 -0
- data/lib/dbsketch/model/database.rb +87 -0
- data/lib/dbsketch/model/database_object.rb +71 -0
- data/lib/dbsketch/model/foreign_key.rb +29 -0
- data/lib/dbsketch/model/function.rb +23 -0
- data/lib/dbsketch/model/index.rb +40 -0
- data/lib/dbsketch/model/model_error.rb +15 -0
- data/lib/dbsketch/model/operation.rb +28 -0
- data/lib/dbsketch/model/primary_key.rb +33 -0
- data/lib/dbsketch/model/procedure.rb +18 -0
- data/lib/dbsketch/model/table.rb +171 -0
- data/lib/dbsketch/model/trigger.rb +32 -0
- data/lib/dbsketch/model/type.rb +92 -0
- data/lib/dbsketch/model/unique_constraint.rb +33 -0
- data/lib/dbsketch/model/view.rb +23 -0
- data/lib/dbsketch/rendering/meta/column_renderer.rb +76 -0
- data/lib/dbsketch/rendering/meta/database_renderer.rb +112 -0
- data/lib/dbsketch/rendering/meta/foreign_key_renderer.rb +31 -0
- data/lib/dbsketch/rendering/meta/index_renderer.rb +30 -0
- data/lib/dbsketch/rendering/meta/operation_renderer.rb +66 -0
- data/lib/dbsketch/rendering/meta/table_renderer.rb +177 -0
- data/lib/dbsketch/rendering/meta/trigger_renderer.rb +31 -0
- data/lib/dbsketch/rendering/meta/type_renderer.rb +37 -0
- data/lib/dbsketch/rendering/meta/view_renderer.rb +32 -0
- data/lib/dbsketch/rendering/sql/column_renderer.rb +75 -0
- data/lib/dbsketch/rendering/sql/database_diff_renderer.rb +94 -0
- data/lib/dbsketch/rendering/sql/database_renderer.rb +139 -0
- data/lib/dbsketch/rendering/sql/foreign_key_renderer.rb +24 -0
- data/lib/dbsketch/rendering/sql/index_renderer.rb +31 -0
- data/lib/dbsketch/rendering/sql/operation_renderer.rb +64 -0
- data/lib/dbsketch/rendering/sql/table_renderer.rb +148 -0
- data/lib/dbsketch/rendering/sql/trigger_renderer.rb +31 -0
- data/lib/dbsketch/rendering/sql/type_renderer.rb +28 -0
- data/lib/dbsketch/rendering/sql/view_renderer.rb +31 -0
- data/lib/dbsketch/version.rb +3 -0
- metadata +134 -0
@@ -0,0 +1,64 @@
|
|
1
|
+
########################################################################################################################
|
2
|
+
# Render a column into SQL
|
3
|
+
########################################################################################################################
|
4
|
+
|
5
|
+
require_relative '../../model/function'
|
6
|
+
require_relative '../../model/procedure'
|
7
|
+
|
8
|
+
module Dbsketch
|
9
|
+
module Rendering
|
10
|
+
module SQL
|
11
|
+
|
12
|
+
class OperationRenderer
|
13
|
+
|
14
|
+
def create operation
|
15
|
+
### Preconditions
|
16
|
+
raise ArgumentError, "operation is not a Dbsketch::Model::Operation" unless operation.is_a? Dbsketch::Model::Operation
|
17
|
+
###
|
18
|
+
if operation.is_a? Dbsketch::Model::Function
|
19
|
+
create_function operation
|
20
|
+
elsif operation.is_a? Dbsketch::Model::Procedure
|
21
|
+
create_procedure operation
|
22
|
+
else
|
23
|
+
raise ArgumentError, "#{operation.class} is an unknown subclass of Dbsketch::Model::Operation"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def drop operation
|
28
|
+
### Preconditions
|
29
|
+
raise ArgumentError, "operation is not a Dbsketch::Model::Operation" unless operation.is_a? Dbsketch::Model::Operation
|
30
|
+
###
|
31
|
+
if operation.is_a? Dbsketch::Model::Function
|
32
|
+
keyword = "function"
|
33
|
+
mssql_type = "FN"
|
34
|
+
elsif operation.is_a? Dbsketch::Model::Procedure
|
35
|
+
keyword = "procedure"
|
36
|
+
mssql_type = "P"
|
37
|
+
else
|
38
|
+
raise ArgumentError, "#{operation.class} is an unknown subclass of Dbsketch::Model::Operation"
|
39
|
+
end
|
40
|
+
|
41
|
+
"if object_id('#{operation.name}', '#{mssql_type}') is not null drop #{keyword} #{operation.name}"
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def create_function function
|
47
|
+
sql = "create function #{function.name} ("
|
48
|
+
sql << "#{function.arguments.join(", ")}" if not function.arguments.empty?
|
49
|
+
sql << ") returns #{function.returns} as\nbegin\n\t#{function.algo}\nend"
|
50
|
+
sql
|
51
|
+
end
|
52
|
+
|
53
|
+
def create_procedure procedure
|
54
|
+
sql = "create procedure #{procedure.name} "
|
55
|
+
sql << "#{procedure.arguments.join(", ")} " if not procedure.arguments.empty?
|
56
|
+
sql << "as\nbegin\n\t#{procedure.algo}\nend"
|
57
|
+
sql
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,148 @@
|
|
1
|
+
########################################################################################################################
|
2
|
+
# Render a table into SQL
|
3
|
+
########################################################################################################################
|
4
|
+
|
5
|
+
require_relative '../../comparison/table_comparator'
|
6
|
+
require_relative '../../model/table'
|
7
|
+
|
8
|
+
require_relative 'column_renderer'
|
9
|
+
require_relative 'foreign_key_renderer'
|
10
|
+
|
11
|
+
module Dbsketch
|
12
|
+
module Rendering
|
13
|
+
module SQL
|
14
|
+
|
15
|
+
class TableRenderer
|
16
|
+
def initialize column_renderer: nil, fk_renderer: nil, options: {}
|
17
|
+
### Preconditions
|
18
|
+
raise ArgumentError, "options is not a Hash" unless options.is_a? Hash
|
19
|
+
###
|
20
|
+
@options = {
|
21
|
+
:pretty => false
|
22
|
+
}.merge options
|
23
|
+
@column_renderer = (nil == column_renderer ? ColumnRenderer.new(:options => options) : column_renderer)
|
24
|
+
@fk_renderer = (nil == fk_renderer ? ForeignKeyRenderer.new : fk_renderer)
|
25
|
+
end
|
26
|
+
|
27
|
+
def create table
|
28
|
+
### Preconditions
|
29
|
+
raise ArgumentError, "table is not a Dbsketch::Model::Table" unless table.is_a? Dbsketch::Model::Table
|
30
|
+
###
|
31
|
+
if @options[:pretty]
|
32
|
+
create_pretty table
|
33
|
+
else
|
34
|
+
create_brief table
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def drop table
|
39
|
+
### Preconditions
|
40
|
+
raise ArgumentError, "table is not a Dbsketch::Model::Table" unless table.is_a? Dbsketch::Model::Table
|
41
|
+
###
|
42
|
+
"if object_id('#{table.name}', 'U') is not null drop table #{table.name}"
|
43
|
+
end
|
44
|
+
|
45
|
+
def alter table_diff
|
46
|
+
### Preconditions
|
47
|
+
raise ArgumentError, "table_diff is not a Dbsketch::Comparison::TableDiff" unless table_diff.is_a? Dbsketch::Comparison::TableDiff
|
48
|
+
###
|
49
|
+
queries = []
|
50
|
+
|
51
|
+
# Columns
|
52
|
+
deleted_columns = table_diff.columns.select { |d| d.deletion? }
|
53
|
+
if not deleted_columns.empty?
|
54
|
+
queries << "alter table #{table_diff.new_table.name} drop column #{deleted_columns.map { |d| d.old_column.name }.join(", ")}"
|
55
|
+
end
|
56
|
+
added_columns = table_diff.columns.select { |d| d.addition? }
|
57
|
+
if not added_columns.empty?
|
58
|
+
queries << "alter table #{table_diff.new_table.name} add #{added_columns.map { |d| @column_renderer.create d.new_column }.join(", ")}"
|
59
|
+
end
|
60
|
+
queries << table_diff.columns.select { |d| d.change? }.map { |d| "alter table #{table_diff.new_table.name} alter column #{@column_renderer.create d.new_column}" }
|
61
|
+
|
62
|
+
# Primary key
|
63
|
+
if nil != table_diff.primary_key
|
64
|
+
queries << "alter table #{table_diff.new_table.name} drop constraint #{table_diff.primary_key.old_key.name}" if table_diff.primary_key.deletion? or table_diff.primary_key.change?
|
65
|
+
queries << "alter table #{table_diff.new_table.name} add #{create_primary_key table_diff.primary_key.new_key}" if table_diff.primary_key.addition? or table_diff.primary_key.change?
|
66
|
+
end
|
67
|
+
|
68
|
+
# Check constraints
|
69
|
+
deleted_and_changed = table_diff.check_constraints.select { |chk_diff| chk_diff.deletion? or chk_diff.change? }
|
70
|
+
if not deleted_and_changed.empty?
|
71
|
+
queries << "alter table #{table_diff.new_table.name} drop constraint #{deleted_and_changed.map { |d| d.old_constraint.name }.join(", ")}"
|
72
|
+
end
|
73
|
+
added_and_changed = table_diff.check_constraints.select { |chk_diff| chk_diff.addition? or chk_diff.change? }
|
74
|
+
if not added_and_changed.empty?
|
75
|
+
queries << "alter table #{table_diff.new_table.name} add #{added_and_changed.map { |d| create_check_constraint d.new_constraint }.join(", ")}"
|
76
|
+
end
|
77
|
+
queries.flatten.join("\n")
|
78
|
+
|
79
|
+
# Foreign keys
|
80
|
+
deleted_and_changed = table_diff.foreign_keys.select { |d| d.deletion? or d.change? }
|
81
|
+
if not deleted_and_changed.empty?
|
82
|
+
queries << "alter table #{table_diff.new_table.name} drop constraint #{deleted_and_changed.map { |d| d.old_key.name }.join(", ")}"
|
83
|
+
end
|
84
|
+
added_and_changed = table_diff.foreign_keys.select { |d| d.addition? or d.change? }
|
85
|
+
if not added_and_changed.empty?
|
86
|
+
queries << "alter table #{table_diff.new_table.name} add #{added_and_changed.map { |d| @fk_renderer.create d.new_key }.join(", ")}"
|
87
|
+
end
|
88
|
+
queries.flatten.join("\n")
|
89
|
+
|
90
|
+
# Unique constraints
|
91
|
+
deleted_and_changed = table_diff.unique_constraints.select { |d| d.deletion? or d.change? }
|
92
|
+
if not deleted_and_changed.empty?
|
93
|
+
queries << "alter table #{table_diff.new_table.name} drop constraint #{deleted_and_changed.map { |d| d.old_constraint.name }.join(", ")}"
|
94
|
+
end
|
95
|
+
added_and_changed = table_diff.unique_constraints.select { |d| d.addition? or d.change? }
|
96
|
+
if not added_and_changed.empty?
|
97
|
+
queries << "alter table #{table_diff.new_table.name} add #{added_and_changed.map { |d| create_unique_constraint d.new_constraint }.join(", ")}"
|
98
|
+
end
|
99
|
+
queries.flatten.join("\n")
|
100
|
+
end
|
101
|
+
|
102
|
+
private
|
103
|
+
|
104
|
+
def create_primary_key primary_key
|
105
|
+
"constraint #{primary_key.name} primary key (#{primary_key.columns.map {|c| c.name }.join(", ")})"
|
106
|
+
end
|
107
|
+
|
108
|
+
def create_check_constraint constraint
|
109
|
+
"constraint #{constraint.name} check (#{constraint.condition})"
|
110
|
+
end
|
111
|
+
|
112
|
+
def create_unique_constraint constraint
|
113
|
+
"constraint #{constraint.name} unique (#{constraint.columns.map {|c| c.name }.join(", ")})"
|
114
|
+
end
|
115
|
+
|
116
|
+
def collect_items table
|
117
|
+
items = table.columns.sort { |a,b| a.order <=> b.order }.map { |c| @column_renderer.create c }
|
118
|
+
if nil != table.primary_key then items << create_primary_key(table.primary_key) end
|
119
|
+
items << table.check_constraints.map { |c| create_check_constraint c }
|
120
|
+
items << table.unique_constraints.map { |c| create_unique_constraint c }
|
121
|
+
items << table.foreign_keys.map { |k| @fk_renderer.create k }
|
122
|
+
items.flatten
|
123
|
+
end
|
124
|
+
|
125
|
+
def create_brief table
|
126
|
+
items = collect_items table
|
127
|
+
"create table #{table.name} (#{items.join(', ')})"
|
128
|
+
end
|
129
|
+
|
130
|
+
def create_pretty table
|
131
|
+
items = collect_items table
|
132
|
+
sql = ""
|
133
|
+
if nil != table.meaning or nil != table.comment
|
134
|
+
sql << "-- "
|
135
|
+
sql << table.meaning if nil != table.meaning
|
136
|
+
sql << "\n-- " if nil != table.meaning and nil != table.comment
|
137
|
+
sql << table.comment if nil != table.comment
|
138
|
+
sql << "\n"
|
139
|
+
end
|
140
|
+
sql << "create table #{table.name} (\n\t#{items.join(",\n\t")}\n)"
|
141
|
+
sql
|
142
|
+
end
|
143
|
+
|
144
|
+
end
|
145
|
+
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
########################################################################################################################
|
2
|
+
# Render a trigger into SQL
|
3
|
+
########################################################################################################################
|
4
|
+
|
5
|
+
require_relative '../../model/trigger'
|
6
|
+
|
7
|
+
module Dbsketch
|
8
|
+
module Rendering
|
9
|
+
module SQL
|
10
|
+
|
11
|
+
class TriggerRenderer
|
12
|
+
|
13
|
+
def create trigger
|
14
|
+
### Preconditions
|
15
|
+
raise ArgumentError, "trigger is not a Dbsketch::Model::Trigger" unless trigger.is_a? Dbsketch::Model::Trigger
|
16
|
+
###
|
17
|
+
"create trigger #{trigger.name} on #{trigger.target.name} #{trigger.activation_time} as\nbegin\n\t#{trigger.algo}\nend"
|
18
|
+
end
|
19
|
+
|
20
|
+
def drop trigger
|
21
|
+
### Preconditions
|
22
|
+
raise ArgumentError, "trigger is not a Dbsketch::Model::Trigger" unless trigger.is_a? Dbsketch::Model::Trigger
|
23
|
+
###
|
24
|
+
"if object_id('#{trigger.name}', 'TR') is not null drop trigger #{trigger.name}"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
########################################################################################################################
|
2
|
+
# Render a type into SQL
|
3
|
+
########################################################################################################################
|
4
|
+
|
5
|
+
require_relative '../../model/type'
|
6
|
+
|
7
|
+
module Dbsketch
|
8
|
+
module Rendering
|
9
|
+
module SQL
|
10
|
+
|
11
|
+
class TypeRenderer
|
12
|
+
|
13
|
+
def create type
|
14
|
+
### Preconditions
|
15
|
+
raise ArgumentError, "type is not a Dbsketch::Model::Type" unless type.is_a? Dbsketch::Model::Type
|
16
|
+
###
|
17
|
+
if type.sizes.empty?
|
18
|
+
type.sql_type
|
19
|
+
else
|
20
|
+
"#{type.sql_type}(#{type.sizes.join(",")})"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
########################################################################################################################
|
2
|
+
# Render a view into SQL
|
3
|
+
########################################################################################################################
|
4
|
+
|
5
|
+
require_relative '../../model/view'
|
6
|
+
|
7
|
+
module Dbsketch
|
8
|
+
module Rendering
|
9
|
+
module SQL
|
10
|
+
|
11
|
+
class ViewRenderer
|
12
|
+
|
13
|
+
def create view
|
14
|
+
### Preconditions
|
15
|
+
raise ArgumentError, "view is not a Dbsketch::Model::View" unless view.is_a? Dbsketch::Model::View
|
16
|
+
###
|
17
|
+
"create view #{view.name} as #{view.query}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def drop view
|
21
|
+
### Preconditions
|
22
|
+
raise ArgumentError, "view is not a Dbsketch::Model::View" unless view.is_a? Dbsketch::Model::View
|
23
|
+
###
|
24
|
+
"if object_id('#{view.name}', 'V') is not null drop view #{view.name}"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dbsketch
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Francois Ruche
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: colorize
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.7'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sequel
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.28'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.28'
|
41
|
+
description: Database scripting framework for Ruby.
|
42
|
+
email: francois.ruche@gmail.com
|
43
|
+
executables: []
|
44
|
+
extensions: []
|
45
|
+
extra_rdoc_files: []
|
46
|
+
files:
|
47
|
+
- LICENSE
|
48
|
+
- README.md
|
49
|
+
- lib/dbsketch.rb
|
50
|
+
- lib/dbsketch/automation/automation_error.rb
|
51
|
+
- lib/dbsketch/automation/database_connection_details.rb
|
52
|
+
- lib/dbsketch/automation/database_importer.rb
|
53
|
+
- lib/dbsketch/automation/database_proxy.rb
|
54
|
+
- lib/dbsketch/automation/table_importer.rb
|
55
|
+
- lib/dbsketch/comparison/check_constraint_comparator.rb
|
56
|
+
- lib/dbsketch/comparison/column_comparator.rb
|
57
|
+
- lib/dbsketch/comparison/comparison_error.rb
|
58
|
+
- lib/dbsketch/comparison/computed_column_comparator.rb
|
59
|
+
- lib/dbsketch/comparison/database_comparator.rb
|
60
|
+
- lib/dbsketch/comparison/diff.rb
|
61
|
+
- lib/dbsketch/comparison/foreign_key_comparator.rb
|
62
|
+
- lib/dbsketch/comparison/function_comparator.rb
|
63
|
+
- lib/dbsketch/comparison/index_comparator.rb
|
64
|
+
- lib/dbsketch/comparison/primary_key_comparator.rb
|
65
|
+
- lib/dbsketch/comparison/procedure_comparator.rb
|
66
|
+
- lib/dbsketch/comparison/table_comparator.rb
|
67
|
+
- lib/dbsketch/comparison/trigger_comparator.rb
|
68
|
+
- lib/dbsketch/comparison/type_comparator.rb
|
69
|
+
- lib/dbsketch/comparison/unique_constraint_comparator.rb
|
70
|
+
- lib/dbsketch/comparison/view_comparator.rb
|
71
|
+
- lib/dbsketch/model/abstract_column.rb
|
72
|
+
- lib/dbsketch/model/check_constraint.rb
|
73
|
+
- lib/dbsketch/model/column.rb
|
74
|
+
- lib/dbsketch/model/computed_column.rb
|
75
|
+
- lib/dbsketch/model/custom_code.rb
|
76
|
+
- lib/dbsketch/model/database.rb
|
77
|
+
- lib/dbsketch/model/database_object.rb
|
78
|
+
- lib/dbsketch/model/foreign_key.rb
|
79
|
+
- lib/dbsketch/model/function.rb
|
80
|
+
- lib/dbsketch/model/index.rb
|
81
|
+
- lib/dbsketch/model/model_error.rb
|
82
|
+
- lib/dbsketch/model/operation.rb
|
83
|
+
- lib/dbsketch/model/primary_key.rb
|
84
|
+
- lib/dbsketch/model/procedure.rb
|
85
|
+
- lib/dbsketch/model/table.rb
|
86
|
+
- lib/dbsketch/model/trigger.rb
|
87
|
+
- lib/dbsketch/model/type.rb
|
88
|
+
- lib/dbsketch/model/unique_constraint.rb
|
89
|
+
- lib/dbsketch/model/view.rb
|
90
|
+
- lib/dbsketch/rendering/meta/column_renderer.rb
|
91
|
+
- lib/dbsketch/rendering/meta/database_renderer.rb
|
92
|
+
- lib/dbsketch/rendering/meta/foreign_key_renderer.rb
|
93
|
+
- lib/dbsketch/rendering/meta/index_renderer.rb
|
94
|
+
- lib/dbsketch/rendering/meta/operation_renderer.rb
|
95
|
+
- lib/dbsketch/rendering/meta/table_renderer.rb
|
96
|
+
- lib/dbsketch/rendering/meta/trigger_renderer.rb
|
97
|
+
- lib/dbsketch/rendering/meta/type_renderer.rb
|
98
|
+
- lib/dbsketch/rendering/meta/view_renderer.rb
|
99
|
+
- lib/dbsketch/rendering/sql/column_renderer.rb
|
100
|
+
- lib/dbsketch/rendering/sql/database_diff_renderer.rb
|
101
|
+
- lib/dbsketch/rendering/sql/database_renderer.rb
|
102
|
+
- lib/dbsketch/rendering/sql/foreign_key_renderer.rb
|
103
|
+
- lib/dbsketch/rendering/sql/index_renderer.rb
|
104
|
+
- lib/dbsketch/rendering/sql/operation_renderer.rb
|
105
|
+
- lib/dbsketch/rendering/sql/table_renderer.rb
|
106
|
+
- lib/dbsketch/rendering/sql/trigger_renderer.rb
|
107
|
+
- lib/dbsketch/rendering/sql/type_renderer.rb
|
108
|
+
- lib/dbsketch/rendering/sql/view_renderer.rb
|
109
|
+
- lib/dbsketch/version.rb
|
110
|
+
homepage: https://github.com/Fransez/rproof
|
111
|
+
licenses:
|
112
|
+
- GPL-3.0
|
113
|
+
metadata: {}
|
114
|
+
post_install_message:
|
115
|
+
rdoc_options: []
|
116
|
+
require_paths:
|
117
|
+
- lib
|
118
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - ">="
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
128
|
+
requirements: []
|
129
|
+
rubyforge_project:
|
130
|
+
rubygems_version: 2.6.7
|
131
|
+
signing_key:
|
132
|
+
specification_version: 4
|
133
|
+
summary: Database framework.
|
134
|
+
test_files: []
|