dbsketch 0.0.1
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 +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: []
|