Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
9771f5e1
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,发现更多精彩内容 >>
提交
9771f5e1
编写于
3月 22, 2015
作者:
G
Grey Baker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Ignore index name in `index_exists?` when not passed a name to check for
上级
e73fe1dd
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
19 addition
and
2 deletion
+19
-2
activerecord/CHANGELOG.md
activerecord/CHANGELOG.md
+5
-0
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
..._record/connection_adapters/abstract/schema_statements.rb
+1
-2
activerecord/lib/active_record/migration/compatibility.rb
activerecord/lib/active_record/migration/compatibility.rb
+11
-0
activerecord/test/cases/migration/index_test.rb
activerecord/test/cases/migration/index_test.rb
+2
-0
未找到文件。
activerecord/CHANGELOG.md
浏览文件 @
9771f5e1
*
Ignore index name in
`index_exists?`
and
`remove_index`
when not passed a
name to check for.
*Grey Baker*
*
Version the API presented to migration classes, so we can change parameter
defaults without breaking existing migrations, or forcing them to be
rewritten through a deprecation cycle.
...
...
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
浏览文件 @
9771f5e1
...
...
@@ -82,11 +82,10 @@ def view_exists?(view_name)
#
def
index_exists?
(
table_name
,
column_name
,
options
=
{})
column_names
=
Array
(
column_name
).
map
(
&
:to_s
)
index_name
=
options
.
key?
(
:name
)
?
options
[
:name
].
to_s
:
index_name
(
table_name
,
column:
column_names
)
checks
=
[]
checks
<<
lambda
{
|
i
|
i
.
name
==
index_name
}
checks
<<
lambda
{
|
i
|
i
.
columns
==
column_names
}
checks
<<
lambda
{
|
i
|
i
.
unique
}
if
options
[
:unique
]
checks
<<
lambda
{
|
i
|
i
.
name
==
options
[
:name
].
to_s
}
if
options
[
:name
]
indexes
(
table_name
).
any?
{
|
i
|
checks
.
all?
{
|
check
|
check
[
i
]
}
}
end
...
...
activerecord/lib/active_record/migration/compatibility.rb
浏览文件 @
9771f5e1
...
...
@@ -28,6 +28,17 @@ def add_timestamps(*, **options)
options
[
:null
]
=
true
if
options
[
:null
].
nil?
super
end
def
index_exists?
(
table_name
,
column_name
,
options
=
{})
column_names
=
Array
(
column_name
).
map
(
&
:to_s
)
options
[
:name
]
=
if
options
.
key?
(
:name
).
present?
options
[
:name
].
to_s
else
index_name
(
table_name
,
column:
column_names
)
end
super
end
end
class
V4_2
<
V5_0
...
...
activerecord/test/cases/migration/index_test.rb
浏览文件 @
9771f5e1
...
...
@@ -130,7 +130,9 @@ def test_unique_index_exists
def
test_named_index_exists
connection
.
add_index
:testings
,
:foo
,
:name
=>
"custom_index_name"
assert
connection
.
index_exists?
(
:testings
,
:foo
)
assert
connection
.
index_exists?
(
:testings
,
:foo
,
:name
=>
"custom_index_name"
)
assert
!
connection
.
index_exists?
(
:testings
,
:foo
,
:name
=>
"other_index_name"
)
end
def
test_add_index_attribute_length_limit
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录