Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
6955d864
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
6955d864
编写于
6月 11, 2014
作者:
Y
Yves Senn
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fk: rename `dependent` to `on_delete`
上级
d074b821
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
26 addition
and
27 deletion
+26
-27
activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
...ve_record/connection_adapters/abstract/schema_creation.rb
+5
-6
activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
...record/connection_adapters/abstract/schema_definitions.rb
+2
-2
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
..._record/connection_adapters/abstract/schema_statements.rb
+1
-1
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
...tive_record/connection_adapters/abstract_mysql_adapter.rb
+2
-2
activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
...ecord/connection_adapters/postgresql/schema_statements.rb
+2
-2
activerecord/lib/active_record/schema_dumper.rb
activerecord/lib/active_record/schema_dumper.rb
+1
-1
activerecord/test/cases/migration/foreign_key_test.rb
activerecord/test/cases/migration/foreign_key_test.rb
+13
-13
未找到文件。
activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
浏览文件 @
6955d864
...
...
@@ -24,7 +24,7 @@ def visit_AddForeignKey(o)
FOREIGN KEY (
#{
quote_column_name
(
o
.
column
)
}
)
REFERENCES
#{
quote_table_name
(
o
.
to_table
)
}
(
#{
quote_column_name
(
o
.
primary_key
)
}
)
SQL
sql
<<
"
#{
dependency_sql
(
o
.
dependent
)
}
"
if
o
.
dependent
sql
<<
"
#{
action_sql
(
o
.
on_delete
)
}
"
if
o
.
on_delete
sql
end
...
...
@@ -101,12 +101,11 @@ def options_include_default?(options)
options
.
include?
(
:default
)
&&
!
(
options
[
:null
]
==
false
&&
options
[
:default
].
nil?
)
end
def
dependency_sql
(
dependency
)
def
action_sql
(
action
=
"DELETE"
,
dependency
)
case
dependency
when
:nullify
then
"ON DELETE SET NULL"
when
:delete
then
"ON DELETE CASCADE"
when
:restrict
then
"ON DELETE RESTRICT"
else
""
when
:nullify
then
"ON
#{
action
}
SET NULL"
when
:cascade
then
"ON
#{
action
}
CASCADE"
when
:restrict
then
"ON
#{
action
}
RESTRICT"
end
end
end
...
...
activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
浏览文件 @
6955d864
...
...
@@ -38,8 +38,8 @@ def primary_key
options
[
:primary_key
]
end
def
dependent
options
[
:
dependent
]
def
on_delete
options
[
:
on_delete
]
end
end
...
...
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
浏览文件 @
6955d864
...
...
@@ -654,7 +654,7 @@ def add_foreign_key(from_table, to_table, options = {})
column:
options
[
:column
],
primary_key:
primary_key
,
name:
foreign_key_name
(
from_table
,
options
),
dependent:
options
.
fetch
(
:dependent
,
nil
)
on_delete:
options
.
fetch
(
:on_delete
,
nil
)
}
at
=
create_alter_table
from_table
at
.
add_foreign_key
to_table
,
options
...
...
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
浏览文件 @
6955d864
...
...
@@ -531,8 +531,8 @@ def foreign_keys(table_name)
}
if
create_table_info
=~
/CONSTRAINT
#{
quote_column_name
(
row
[
'name'
])
}
FOREIGN KEY .* REFERENCES .* ON DELETE (CASCADE|SET NULL|RESTRICT)/
options
[
:
dependent
]
=
case
$1
when
'CASCADE'
then
:
delet
e
options
[
:
on_delete
]
=
case
$1
when
'CASCADE'
then
:
cascad
e
when
'SET NULL'
then
:nullify
end
end
...
...
activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
浏览文件 @
6955d864
...
...
@@ -470,8 +470,8 @@ def foreign_keys(table_name)
primary_key:
row
[
'primary_key'
]
}
options
[
:
dependent
]
=
case
row
[
'dependency'
]
when
'c'
;
:
delet
e
options
[
:
on_delete
]
=
case
row
[
'dependency'
]
when
'c'
;
:
cascad
e
when
'n'
;
:nullify
when
'r'
;
:restrict
end
...
...
activerecord/lib/active_record/schema_dumper.rb
浏览文件 @
6955d864
...
...
@@ -226,7 +226,7 @@ def foreign_keys(table, stream)
'primary_key: '
+
foreign_key
.
primary_key
.
inspect
,
'name: '
+
foreign_key
.
name
.
inspect
]
parts
<<
(
'
dependent: '
+
foreign_key
.
dependent
.
inspect
)
if
foreign_key
.
dependent
parts
<<
(
'
on_delete: '
+
foreign_key
.
on_delete
.
inspect
)
if
foreign_key
.
on_delete
' '
+
parts
.
join
(
', '
)
end
...
...
activerecord/test/cases/migration/foreign_key_test.rb
浏览文件 @
6955d864
...
...
@@ -91,8 +91,8 @@ def test_add_foreign_key_with_non_standard_primary_key
end
end
def
test_add_
dependent
_restrict_foreign_key
@connection
.
add_foreign_key
:astronauts
,
:rockets
,
column:
"rocket_id"
,
dependent
: :restrict
def
test_add_
on_delete
_restrict_foreign_key
@connection
.
add_foreign_key
:astronauts
,
:rockets
,
column:
"rocket_id"
,
on_delete
: :restrict
foreign_keys
=
@connection
.
foreign_keys
(
"astronauts"
)
assert_equal
1
,
foreign_keys
.
size
...
...
@@ -100,30 +100,30 @@ def test_add_dependent_restrict_foreign_key
fk
=
foreign_keys
.
first
if
current_adapter?
(
:MysqlAdapter
,
:Mysql2Adapter
)
# ON DELETE RESTRICT is the default on MySQL
assert_equal
nil
,
fk
.
dependent
assert_equal
nil
,
fk
.
on_delete
else
assert_equal
:restrict
,
fk
.
dependent
assert_equal
:restrict
,
fk
.
on_delete
end
end
def
test_add_
dependent_delet
e_foreign_key
@connection
.
add_foreign_key
:astronauts
,
:rockets
,
column:
"rocket_id"
,
dependent: :delet
e
def
test_add_
on_delete_cascad
e_foreign_key
@connection
.
add_foreign_key
:astronauts
,
:rockets
,
column:
"rocket_id"
,
on_delete: :cascad
e
foreign_keys
=
@connection
.
foreign_keys
(
"astronauts"
)
assert_equal
1
,
foreign_keys
.
size
fk
=
foreign_keys
.
first
assert_equal
:
delete
,
fk
.
dependent
assert_equal
:
cascade
,
fk
.
on_delete
end
def
test_add_
dependent
_nullify_foreign_key
@connection
.
add_foreign_key
:astronauts
,
:rockets
,
column:
"rocket_id"
,
dependent
: :nullify
def
test_add_
on_delete
_nullify_foreign_key
@connection
.
add_foreign_key
:astronauts
,
:rockets
,
column:
"rocket_id"
,
on_delete
: :nullify
foreign_keys
=
@connection
.
foreign_keys
(
"astronauts"
)
assert_equal
1
,
foreign_keys
.
size
fk
=
foreign_keys
.
first
assert_equal
:nullify
,
fk
.
dependent
assert_equal
:nullify
,
fk
.
on_delete
end
def
test_remove_foreign_key_inferes_column
...
...
@@ -155,11 +155,11 @@ def test_schema_dumping
assert_match
%r{
\s
+add_foreign_key "fk_test_has_fk", "fk_test_has_pk", column: "fk_id", primary_key: "id", name: "fk_name"$}
,
output
end
def
test_schema_dumping_
dependent
_option
@connection
.
add_foreign_key
:astronauts
,
:rockets
,
column:
"rocket_id"
,
dependent
: :nullify
def
test_schema_dumping_
on_delete
_option
@connection
.
add_foreign_key
:astronauts
,
:rockets
,
column:
"rocket_id"
,
on_delete
: :nullify
output
=
dump_table_schema
"astronauts"
assert_match
%r{
\s
+add_foreign_key "astronauts",.+
dependent
: :nullify$}
,
output
assert_match
%r{
\s
+add_foreign_key "astronauts",.+
on_delete
: :nullify$}
,
output
end
class
CreateCitiesAndHousesMigration
<
ActiveRecord
::
Migration
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录