pg_saurus 2.6.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.markdown +141 -98
- data/lib/core_ext/active_record/connection_adapters/postgresql_adapter.rb +4 -2
- data/lib/pg_saurus/connection_adapters/abstract_adapter.rb +0 -2
- data/lib/pg_saurus/connection_adapters/postgresql_adapter/foreign_key_methods.rb +105 -0
- data/lib/pg_saurus/connection_adapters/postgresql_adapter/schema_methods.rb +8 -0
- data/lib/pg_saurus/connection_adapters/postgresql_adapter.rb +14 -2
- data/lib/pg_saurus/connection_adapters/table/comment_methods.rb +6 -6
- data/lib/pg_saurus/connection_adapters/table/trigger_methods.rb +2 -2
- data/lib/pg_saurus/connection_adapters/table.rb +0 -6
- data/lib/pg_saurus/connection_adapters.rb +0 -1
- data/lib/pg_saurus/create_index_concurrently.rb +1 -46
- data/lib/pg_saurus/migration/command_recorder.rb +0 -2
- data/lib/pg_saurus/schema_dumper/foreign_key_methods.rb +49 -0
- data/lib/pg_saurus/schema_dumper.rb +4 -3
- data/lib/pg_saurus/version.rb +1 -1
- metadata +10 -78
- data/lib/pg_saurus/connection_adapters/abstract_adapter/foreigner_methods.rb +0 -67
- data/lib/pg_saurus/connection_adapters/postgresql_adapter/foreigner_methods.rb +0 -221
- data/lib/pg_saurus/connection_adapters/table/foreigner_methods.rb +0 -51
- data/lib/pg_saurus/migration/command_recorder/foreigner_methods.rb +0 -31
- data/lib/pg_saurus/schema_dumper/foreigner_methods.rb +0 -63
@@ -7,7 +7,7 @@ module PgSaurus::ConnectionAdapters::Table::CommentMethods
|
|
7
7
|
# ====== Set comment on table
|
8
8
|
# t.set_table_comment 'This table stores phone numbers that conform to the North American Numbering Plan.'
|
9
9
|
def set_table_comment(comment)
|
10
|
-
@base.set_table_comment(@
|
10
|
+
@base.set_table_comment(@name, comment)
|
11
11
|
end
|
12
12
|
|
13
13
|
# Remove any comment from the table.
|
@@ -16,7 +16,7 @@ module PgSaurus::ConnectionAdapters::Table::CommentMethods
|
|
16
16
|
# ====== Remove table comment
|
17
17
|
# t.remove_table_comment
|
18
18
|
def remove_table_comment
|
19
|
-
@base.remove_table_comment(@
|
19
|
+
@base.remove_table_comment(@name)
|
20
20
|
end
|
21
21
|
|
22
22
|
# Set the comment for a given column.
|
@@ -25,7 +25,7 @@ module PgSaurus::ConnectionAdapters::Table::CommentMethods
|
|
25
25
|
# ====== Set comment on the npa column
|
26
26
|
# t.set_column_comment :npa, 'Numbering Plan Area Code - Allowed ranges: [2-9] for first digit, [0-9] for second and third digit.'
|
27
27
|
def set_column_comment(column_name, comment)
|
28
|
-
@base.set_column_comment(@
|
28
|
+
@base.set_column_comment(@name, column_name, comment)
|
29
29
|
end
|
30
30
|
|
31
31
|
# Set comments on multiple columns. 'comments' is a hash of column_name => comment pairs.
|
@@ -35,7 +35,7 @@ module PgSaurus::ConnectionAdapters::Table::CommentMethods
|
|
35
35
|
# t.set_column_comments :npa => 'Numbering Plan Area Code - Allowed ranges: [2-9] for first digit, [0-9] for second and third digit.',
|
36
36
|
# :nxx => 'Central Office Number'
|
37
37
|
def set_column_comments(comments)
|
38
|
-
@base.set_column_comments(@
|
38
|
+
@base.set_column_comments(@name, comments)
|
39
39
|
end
|
40
40
|
|
41
41
|
# Remove any comment for a given column.
|
@@ -44,7 +44,7 @@ module PgSaurus::ConnectionAdapters::Table::CommentMethods
|
|
44
44
|
# ====== Remove comment from the npa column
|
45
45
|
# t.remove_column_comment :npa
|
46
46
|
def remove_column_comment(column_name)
|
47
|
-
@base.remove_column_comment(@
|
47
|
+
@base.remove_column_comment(@name, column_name)
|
48
48
|
end
|
49
49
|
|
50
50
|
# Remove any comments from the given columns.
|
@@ -53,6 +53,6 @@ module PgSaurus::ConnectionAdapters::Table::CommentMethods
|
|
53
53
|
# ====== Remove comment from the npa and nxx columns
|
54
54
|
# t.remove_column_comment :npa, :nxx
|
55
55
|
def remove_column_comments(*column_names)
|
56
|
-
@base.remove_column_comments(@
|
56
|
+
@base.remove_column_comments(@name, *column_names)
|
57
57
|
end
|
58
58
|
end
|
@@ -16,7 +16,7 @@ module PgSaurus::ConnectionAdapters::Table::TriggerMethods
|
|
16
16
|
# initially_deferred: true
|
17
17
|
# end
|
18
18
|
def create_trigger(proc_name, event, options = {})
|
19
|
-
@base.create_trigger(@
|
19
|
+
@base.create_trigger(@name, proc_name, event, options)
|
20
20
|
end
|
21
21
|
|
22
22
|
# Removes a trigger.
|
@@ -27,7 +27,7 @@ module PgSaurus::ConnectionAdapters::Table::TriggerMethods
|
|
27
27
|
# t.remove_trigger :pets_not_empty_trigger_proc
|
28
28
|
# end
|
29
29
|
def remove_trigger(proc_name, options = {})
|
30
|
-
@base.remove_trigger(@
|
30
|
+
@base.remove_trigger(@name, proc_name, options)
|
31
31
|
end
|
32
32
|
|
33
33
|
end
|
@@ -2,17 +2,11 @@
|
|
2
2
|
# to support pg_saurus features.
|
3
3
|
module PgSaurus::ConnectionAdapters::Table
|
4
4
|
extend ActiveSupport::Autoload
|
5
|
-
extend ActiveSupport::Concern
|
6
5
|
|
7
6
|
autoload :CommentMethods
|
8
|
-
autoload :ForeignerMethods
|
9
7
|
autoload :TriggerMethods
|
10
8
|
|
11
9
|
include CommentMethods
|
12
|
-
include ForeignerMethods
|
13
10
|
include TriggerMethods
|
14
11
|
|
15
|
-
included do
|
16
|
-
alias_method_chain :references, :foreign_keys
|
17
|
-
end
|
18
12
|
end
|
@@ -4,7 +4,6 @@ module PgSaurus::ConnectionAdapters # :nodoc:
|
|
4
4
|
autoload :AbstractAdapter
|
5
5
|
autoload :PostgreSQLAdapter, 'pg_saurus/connection_adapters/postgresql_adapter'
|
6
6
|
autoload :Table
|
7
|
-
autoload :ForeignKeyDefinition
|
8
7
|
autoload :IndexDefinition, 'pg_saurus/connection_adapters/index_definition'
|
9
8
|
autoload :FunctionDefinition, 'pg_saurus/connection_adapters/function_definition'
|
10
9
|
autoload :TriggerDefinition, 'pg_saurus/connection_adapters/trigger_definition'
|
@@ -70,7 +70,7 @@ module PgSaurus::CreateIndexConcurrently
|
|
70
70
|
#
|
71
71
|
# @see ActiveRecord::ConnectionAdapters::SchemaStatements.add_index in pg_saurus gem
|
72
72
|
def add_index(table_name, column_name, options = {}, &block)
|
73
|
-
table_name =
|
73
|
+
table_name = proper_table_name(table_name)
|
74
74
|
# GOTCHA:
|
75
75
|
# checks if index should be created concurretnly then put it into
|
76
76
|
# the queue to wait till queue processing will be called (should be
|
@@ -86,51 +86,6 @@ module PgSaurus::CreateIndexConcurrently
|
|
86
86
|
nil
|
87
87
|
end
|
88
88
|
|
89
|
-
# Add a foreign key.
|
90
|
-
#
|
91
|
-
# == Options:
|
92
|
-
# * :column
|
93
|
-
# * :primary_key
|
94
|
-
# * :dependent
|
95
|
-
# * :exclude_index [Boolean]
|
96
|
-
# * :concurrent_index [Boolean]
|
97
|
-
#
|
98
|
-
# @param [String, Symbol] from_table
|
99
|
-
# @param [String, Symbol] to_table
|
100
|
-
# @param [Hash] options
|
101
|
-
# @option options [String, Symbol] :column
|
102
|
-
# @option options [String, Symbol] :primary_key
|
103
|
-
# @option options [Hash] :dependent
|
104
|
-
# @option options [Boolean] :exclude_index
|
105
|
-
# @option options [Boolean] :concurrent_index
|
106
|
-
#
|
107
|
-
# @raise [ArgumentError] in case of conflicted option were set
|
108
|
-
#
|
109
|
-
# @see ::PgSaurus::ConnectionAdapters::PostgreSQLAdapter::ForeignerMethods.add_foreign_key
|
110
|
-
def add_foreign_key(from_table, to_table, options = {}, &block)
|
111
|
-
from_table = ::ActiveRecord::Migrator.proper_table_name(from_table)
|
112
|
-
concurrent_index = options[:concurrent_index]
|
113
|
-
|
114
|
-
if concurrent_index then
|
115
|
-
if options[:exclude_index]
|
116
|
-
raise ArgumentError, 'Conflicted options(exclude_index, concurrent_index) was found, both are set to true.'
|
117
|
-
end
|
118
|
-
|
119
|
-
options[:column] ||= connection.id_column_name_from_table_name(to_table)
|
120
|
-
options = options.merge(:concurrently => concurrent_index)
|
121
|
-
|
122
|
-
index_options = { :concurrently => true }
|
123
|
-
enque(from_table, options[:column], index_options)
|
124
|
-
end
|
125
|
-
|
126
|
-
# GOTCHA:
|
127
|
-
# proceed foreign key creation, but giving :concurrent_index => true
|
128
|
-
# prevent normal index creation in PgSaurus's `add_foreign_key`.
|
129
|
-
# So, postponed creation could be done after transaction.
|
130
|
-
# -- zekefast 2012-09-12
|
131
|
-
connection.add_foreign_key(from_table, to_table, options, &block)
|
132
|
-
end
|
133
|
-
|
134
89
|
# Execute all postponed index creation.
|
135
90
|
#
|
136
91
|
# @return [::PgSaurus::CreateIndexConcurrently::Migration]
|
@@ -6,7 +6,6 @@ module PgSaurus::Migration::CommandRecorder
|
|
6
6
|
autoload :ExtensionMethods
|
7
7
|
autoload :SchemaMethods
|
8
8
|
autoload :CommentMethods
|
9
|
-
autoload :ForeignerMethods
|
10
9
|
autoload :ViewMethods
|
11
10
|
autoload :FunctionMethods
|
12
11
|
autoload :TriggerMethods
|
@@ -14,7 +13,6 @@ module PgSaurus::Migration::CommandRecorder
|
|
14
13
|
include ExtensionMethods
|
15
14
|
include SchemaMethods
|
16
15
|
include CommentMethods
|
17
|
-
include ForeignerMethods
|
18
16
|
include ViewMethods
|
19
17
|
include FunctionMethods
|
20
18
|
include TriggerMethods
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Provides methods to extend ActiveRecord::SchemaDumper to dump
|
2
|
+
# foreign keys.
|
3
|
+
module PgSaurus::SchemaDumper::ForeignKeyMethods
|
4
|
+
|
5
|
+
# See activerecord/lib/active_record/schema_dumper.rb
|
6
|
+
def foreign_keys_with_indexes(table, stream)
|
7
|
+
if (foreign_keys = @connection.foreign_keys(table)).any?
|
8
|
+
add_foreign_key_statements = foreign_keys.map do |foreign_key|
|
9
|
+
|
10
|
+
from_table = if foreign_key.from_schema && foreign_key.from_schema != 'public'
|
11
|
+
"#{foreign_key.from_schema}.#{remove_prefix_and_suffix(foreign_key.from_table)}"
|
12
|
+
else
|
13
|
+
remove_prefix_and_suffix(foreign_key.from_table)
|
14
|
+
end
|
15
|
+
|
16
|
+
parts = [
|
17
|
+
"add_foreign_key #{from_table.inspect}",
|
18
|
+
remove_prefix_and_suffix(foreign_key.to_table).inspect,
|
19
|
+
]
|
20
|
+
|
21
|
+
if foreign_key.column != @connection.foreign_key_column_for(foreign_key.to_table)
|
22
|
+
parts << "column: #{foreign_key.column.inspect}"
|
23
|
+
end
|
24
|
+
|
25
|
+
if foreign_key.custom_primary_key?
|
26
|
+
parts << "primary_key: #{foreign_key.primary_key.inspect}"
|
27
|
+
end
|
28
|
+
|
29
|
+
if foreign_key.name !~ /^fk_rails_[0-9a-f]{10}$/
|
30
|
+
parts << "name: #{foreign_key.name.inspect}"
|
31
|
+
end
|
32
|
+
|
33
|
+
parts << "on_update: #{foreign_key.on_update.inspect}" if foreign_key.on_update
|
34
|
+
parts << "on_delete: #{foreign_key.on_delete.inspect}" if foreign_key.on_delete
|
35
|
+
|
36
|
+
# Always exclude the index
|
37
|
+
# If an index was created in a migration, it will get dumped to the schema
|
38
|
+
# separately from the foreign key. This will raise an exception if
|
39
|
+
# add_foreign_key is run without :exclude_index => true.
|
40
|
+
parts << ":exclude_index => true"
|
41
|
+
|
42
|
+
" #{parts.join(', ')}"
|
43
|
+
end
|
44
|
+
|
45
|
+
stream.puts add_foreign_key_statements.sort.join("\n")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -8,7 +8,7 @@ module PgSaurus::SchemaDumper
|
|
8
8
|
autoload :ExtensionMethods
|
9
9
|
autoload :CommentMethods
|
10
10
|
autoload :SchemaMethods
|
11
|
-
autoload :
|
11
|
+
autoload :ForeignKeyMethods
|
12
12
|
autoload :ViewMethods
|
13
13
|
autoload :FunctionMethods
|
14
14
|
autoload :TriggerMethods
|
@@ -16,7 +16,7 @@ module PgSaurus::SchemaDumper
|
|
16
16
|
include ExtensionMethods
|
17
17
|
include CommentMethods
|
18
18
|
include SchemaMethods
|
19
|
-
include
|
19
|
+
include ForeignKeyMethods
|
20
20
|
include ViewMethods
|
21
21
|
include FunctionMethods
|
22
22
|
include TriggerMethods
|
@@ -26,9 +26,10 @@ module PgSaurus::SchemaDumper
|
|
26
26
|
alias_method_chain :header, :extensions
|
27
27
|
|
28
28
|
alias_method_chain :tables, :views
|
29
|
-
alias_method_chain :tables, :foreign_keys
|
30
29
|
alias_method_chain :tables, :functions
|
31
30
|
alias_method_chain :tables, :triggers
|
32
31
|
alias_method_chain :tables, :comments
|
32
|
+
|
33
|
+
alias_method_chain :foreign_keys, :indexes
|
33
34
|
end
|
34
35
|
end
|
data/lib/pg_saurus/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_saurus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Potapov Sergey
|
@@ -13,102 +13,36 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2016-
|
16
|
+
date: 2016-05-05 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: pg
|
20
20
|
requirement: !ruby/object:Gem::Requirement
|
21
21
|
requirements:
|
22
|
-
- - ">="
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: '0'
|
25
|
-
type: :runtime
|
26
|
-
prerelease: false
|
27
|
-
version_requirements: !ruby/object:Gem::Requirement
|
28
|
-
requirements:
|
29
|
-
- - ">="
|
30
|
-
- !ruby/object:Gem::Version
|
31
|
-
version: '0'
|
32
|
-
- !ruby/object:Gem::Dependency
|
33
|
-
name: railties
|
34
|
-
requirement: !ruby/object:Gem::Requirement
|
35
|
-
requirements:
|
36
|
-
- - "<"
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
version: '4.2'
|
39
22
|
- - "~>"
|
40
23
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
24
|
+
version: 0.18.1
|
42
25
|
type: :runtime
|
43
26
|
prerelease: false
|
44
27
|
version_requirements: !ruby/object:Gem::Requirement
|
45
28
|
requirements:
|
46
|
-
- - "<"
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '4.2'
|
49
29
|
- - "~>"
|
50
30
|
- !ruby/object:Gem::Version
|
51
|
-
version:
|
31
|
+
version: 0.18.1
|
52
32
|
- !ruby/object:Gem::Dependency
|
53
|
-
name:
|
33
|
+
name: rails
|
54
34
|
requirement: !ruby/object:Gem::Requirement
|
55
35
|
requirements:
|
56
|
-
- - "<"
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
version: '4.2'
|
59
36
|
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '4.0'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "<"
|
67
37
|
- !ruby/object:Gem::Version
|
68
38
|
version: '4.2'
|
69
|
-
- - "~>"
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: '4.0'
|
72
|
-
- !ruby/object:Gem::Dependency
|
73
|
-
name: activerecord
|
74
|
-
requirement: !ruby/object:Gem::Requirement
|
75
|
-
requirements:
|
76
|
-
- - "<"
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '4.2'
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '4.0'
|
82
39
|
type: :runtime
|
83
40
|
prerelease: false
|
84
41
|
version_requirements: !ruby/object:Gem::Requirement
|
85
42
|
requirements:
|
86
|
-
- - "<"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '4.2'
|
89
|
-
- - "~>"
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
version: '4.0'
|
92
|
-
- !ruby/object:Gem::Dependency
|
93
|
-
name: activesupport
|
94
|
-
requirement: !ruby/object:Gem::Requirement
|
95
|
-
requirements:
|
96
|
-
- - "<"
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: '4.2'
|
99
43
|
- - "~>"
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '4.0'
|
102
|
-
type: :runtime
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - "<"
|
107
44
|
- !ruby/object:Gem::Version
|
108
45
|
version: '4.2'
|
109
|
-
- - "~>"
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '4.0'
|
112
46
|
- !ruby/object:Gem::Dependency
|
113
47
|
name: rspec-rails
|
114
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -208,7 +142,7 @@ dependencies:
|
|
208
142
|
- !ruby/object:Gem::Version
|
209
143
|
version: '0'
|
210
144
|
description: ActiveRecord extensions for PostgreSQL. Provides useful tools for schema,
|
211
|
-
foreign_key, index, comment and extension manipulations in migrations.
|
145
|
+
foreign_key, index, function, trigger, comment and extension manipulations in migrations.
|
212
146
|
email:
|
213
147
|
- blake131313@gmail.com
|
214
148
|
- arthur.shagall@gmail.com
|
@@ -233,7 +167,6 @@ files:
|
|
233
167
|
- lib/pg_saurus/connection_adapters.rb
|
234
168
|
- lib/pg_saurus/connection_adapters/abstract_adapter.rb
|
235
169
|
- lib/pg_saurus/connection_adapters/abstract_adapter/comment_methods.rb
|
236
|
-
- lib/pg_saurus/connection_adapters/abstract_adapter/foreigner_methods.rb
|
237
170
|
- lib/pg_saurus/connection_adapters/abstract_adapter/function_methods.rb
|
238
171
|
- lib/pg_saurus/connection_adapters/abstract_adapter/index_methods.rb
|
239
172
|
- lib/pg_saurus/connection_adapters/abstract_adapter/schema_methods.rb
|
@@ -244,7 +177,7 @@ files:
|
|
244
177
|
- lib/pg_saurus/connection_adapters/postgresql_adapter.rb
|
245
178
|
- lib/pg_saurus/connection_adapters/postgresql_adapter/comment_methods.rb
|
246
179
|
- lib/pg_saurus/connection_adapters/postgresql_adapter/extension_methods.rb
|
247
|
-
- lib/pg_saurus/connection_adapters/postgresql_adapter/
|
180
|
+
- lib/pg_saurus/connection_adapters/postgresql_adapter/foreign_key_methods.rb
|
248
181
|
- lib/pg_saurus/connection_adapters/postgresql_adapter/function_methods.rb
|
249
182
|
- lib/pg_saurus/connection_adapters/postgresql_adapter/index_methods.rb
|
250
183
|
- lib/pg_saurus/connection_adapters/postgresql_adapter/schema_methods.rb
|
@@ -253,7 +186,6 @@ files:
|
|
253
186
|
- lib/pg_saurus/connection_adapters/postgresql_adapter/view_methods.rb
|
254
187
|
- lib/pg_saurus/connection_adapters/table.rb
|
255
188
|
- lib/pg_saurus/connection_adapters/table/comment_methods.rb
|
256
|
-
- lib/pg_saurus/connection_adapters/table/foreigner_methods.rb
|
257
189
|
- lib/pg_saurus/connection_adapters/table/trigger_methods.rb
|
258
190
|
- lib/pg_saurus/connection_adapters/trigger_definition.rb
|
259
191
|
- lib/pg_saurus/create_index_concurrently.rb
|
@@ -263,7 +195,6 @@ files:
|
|
263
195
|
- lib/pg_saurus/migration/command_recorder.rb
|
264
196
|
- lib/pg_saurus/migration/command_recorder/comment_methods.rb
|
265
197
|
- lib/pg_saurus/migration/command_recorder/extension_methods.rb
|
266
|
-
- lib/pg_saurus/migration/command_recorder/foreigner_methods.rb
|
267
198
|
- lib/pg_saurus/migration/command_recorder/function_methods.rb
|
268
199
|
- lib/pg_saurus/migration/command_recorder/schema_methods.rb
|
269
200
|
- lib/pg_saurus/migration/command_recorder/trigger_methods.rb
|
@@ -272,7 +203,7 @@ files:
|
|
272
203
|
- lib/pg_saurus/schema_dumper.rb
|
273
204
|
- lib/pg_saurus/schema_dumper/comment_methods.rb
|
274
205
|
- lib/pg_saurus/schema_dumper/extension_methods.rb
|
275
|
-
- lib/pg_saurus/schema_dumper/
|
206
|
+
- lib/pg_saurus/schema_dumper/foreign_key_methods.rb
|
276
207
|
- lib/pg_saurus/schema_dumper/function_methods.rb
|
277
208
|
- lib/pg_saurus/schema_dumper/schema_methods.rb
|
278
209
|
- lib/pg_saurus/schema_dumper/trigger_methods.rb
|
@@ -300,8 +231,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
300
231
|
version: '0'
|
301
232
|
requirements: []
|
302
233
|
rubyforge_project:
|
303
|
-
rubygems_version: 2.4.
|
234
|
+
rubygems_version: 2.4.6
|
304
235
|
signing_key:
|
305
236
|
specification_version: 4
|
306
237
|
summary: ActiveRecord extensions for PostgreSQL.
|
307
238
|
test_files: []
|
239
|
+
has_rdoc:
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# Extends ActiveRecord::ConnectionAdapters::AbstractAdapter with
|
2
|
-
# empty methods for foreign keys feature.
|
3
|
-
module PgSaurus::ConnectionAdapters::AbstractAdapter::ForeignerMethods
|
4
|
-
def supports_foreign_keys?
|
5
|
-
false
|
6
|
-
end
|
7
|
-
|
8
|
-
# Adds a new foreign key to the +from_table+, referencing the primary key of +to_table+
|
9
|
-
#
|
10
|
-
# The foreign key will be named after the from and to tables unless you pass
|
11
|
-
# <tt>:name</tt> as an option.
|
12
|
-
#
|
13
|
-
# ===== Examples
|
14
|
-
# ====== Creating a foreign key
|
15
|
-
# add_foreign_key(:comments, :posts)
|
16
|
-
# generates
|
17
|
-
# ALTER TABLE `comments` ADD CONSTRAINT
|
18
|
-
# `comments_post_id_fk` FOREIGN KEY (`post_id`) REFERENCES `posts` (`id`)
|
19
|
-
#
|
20
|
-
# ====== Creating a named foreign key
|
21
|
-
# add_foreign_key(:comments, :posts, :name => 'comments_belongs_to_posts')
|
22
|
-
# generates
|
23
|
-
# ALTER TABLE `comments` ADD CONSTRAINT
|
24
|
-
# `comments_belongs_to_posts` FOREIGN KEY (`post_id`) REFERENCES `posts` (`id`)
|
25
|
-
#
|
26
|
-
# ====== Creating a cascading foreign_key on a custom column
|
27
|
-
# add_foreign_key(:people, :people, :column => 'best_friend_id', :dependent => :nullify)
|
28
|
-
# generates
|
29
|
-
# ALTER TABLE `people` ADD CONSTRAINT
|
30
|
-
# `people_best_friend_id_fk` FOREIGN KEY (`best_friend_id`) REFERENCES `people` (`id`)
|
31
|
-
# ON DELETE SET NULL
|
32
|
-
#
|
33
|
-
# === Supported options
|
34
|
-
# [:column]
|
35
|
-
# Specify the column name on the from_table that references the to_table. By default this is guessed
|
36
|
-
# to be the singular name of the to_table with "_id" suffixed. So a to_table of :posts will use "post_id"
|
37
|
-
# as the default <tt>:column</tt>.
|
38
|
-
# [:primary_key]
|
39
|
-
# Specify the column name on the to_table that is referenced by this foreign key. By default this is
|
40
|
-
# assumed to be "id".
|
41
|
-
# [:name]
|
42
|
-
# Specify the name of the foreign key constraint. This defaults to use from_table and foreign key column.
|
43
|
-
# [:dependent]
|
44
|
-
# If set to <tt>:delete</tt>, the associated records in from_table are deleted when records in to_table table are deleted.
|
45
|
-
# If set to <tt>:nullify</tt>, the foreign key column is set to +NULL+.
|
46
|
-
# [:options]
|
47
|
-
# Any extra options you want appended to the foreign key definition.
|
48
|
-
def add_foreign_key(from_table, to_table, options = {})
|
49
|
-
end
|
50
|
-
|
51
|
-
# Remove the given foreign key from the table.
|
52
|
-
#
|
53
|
-
# ===== Examples
|
54
|
-
# ====== Remove the suppliers_company_id_fk in the suppliers table.
|
55
|
-
# remove_foreign_key :suppliers, :companies
|
56
|
-
# ====== Remove the foreign key named accounts_branch_id_fk in the accounts table.
|
57
|
-
# remove_foreign_key :accounts, :column => :branch_id
|
58
|
-
# ====== Remove the foreign key named party_foreign_key in the accounts table.
|
59
|
-
# remove_foreign_key :accounts, :name => :party_foreign_key
|
60
|
-
def remove_foreign_key(from_table, options)
|
61
|
-
end
|
62
|
-
|
63
|
-
# Return the foreign keys for the schema_dumper
|
64
|
-
def foreign_keys(table_name)
|
65
|
-
[]
|
66
|
-
end
|
67
|
-
end
|