rein 0.6.0 → 0.7.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.
- data/lib/rein.rb +6 -0
- data/lib/rein/constraint/foreign_key.rb +17 -1
- data/lib/rein/version.rb +1 -1
- metadata +3 -3
data/lib/rein.rb
CHANGED
@@ -21,6 +21,12 @@ module ActiveRecord::ConnectionAdapters
|
|
21
21
|
include Rein::View
|
22
22
|
end
|
23
23
|
|
24
|
+
class Mysql2Adapter < AbstractAdapter
|
25
|
+
include RC::PrimaryKey
|
26
|
+
include RC::ForeignKey
|
27
|
+
include Rein::View
|
28
|
+
end
|
29
|
+
|
24
30
|
class PostgreSQLAdapter < AbstractAdapter
|
25
31
|
include RC::PrimaryKey
|
26
32
|
include RC::ForeignKey
|
@@ -19,9 +19,25 @@ module RC
|
|
19
19
|
# A foreign key constraint doesn't have an implicit index.
|
20
20
|
add_index(referencing_table, referencing_attribute) if options[:add_index] == true
|
21
21
|
end
|
22
|
-
|
23
22
|
alias_method :add_foreign_key, :add_foreign_key_constraint
|
24
23
|
|
24
|
+
def remove_foreign_key_constraint(referencing_table, referenced_table, options = {})
|
25
|
+
referencing_attribute = options[:referencing] || "#{referenced_table.to_s.singularize}_id".to_sym
|
26
|
+
referenced_attribute = "id".to_sym
|
27
|
+
|
28
|
+
name = options[:name] || "#{referencing_attribute}_fk".to_sym
|
29
|
+
|
30
|
+
if self.class.is_a?(ActiveRecord::ConnectionAdapters::MysqlAdapter)
|
31
|
+
execute "ALTER TABLE #{referencing_table} DROP FOREIGN KEY #{name}"
|
32
|
+
else
|
33
|
+
execute "ALTER TABLE #{referencing_table} DROP CONSTRAINT #{name}"
|
34
|
+
end
|
35
|
+
|
36
|
+
# A foreign key constraint doesn't have an implicit index.
|
37
|
+
remove_index(referencing_table, referencing_attribute) if options[:remove_index] == true
|
38
|
+
end
|
39
|
+
alias_method :remove_foreign_key, :remove_foreign_key_constraint
|
40
|
+
|
25
41
|
private
|
26
42
|
def referential_action(action)
|
27
43
|
case action.to_sym
|
data/lib/rein/version.rb
CHANGED
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 7
|
8
8
|
- 0
|
9
|
-
version: 0.
|
9
|
+
version: 0.7.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Josh Bassett
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-10-
|
17
|
+
date: 2010-10-28 00:00:00 +11:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|