Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
ae7bd9f7
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ae7bd9f7
编写于
4月 24, 2014
作者:
D
Dmitriy Zaporozhets
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Migrate invalid rows with missing iids or duplicates
上级
3bf1cff4
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
26 addition
and
0 deletion
+26
-0
app/models/milestone.rb
app/models/milestone.rb
+1
-0
db/migrate/20140416074002_add_index_on_iid.rb
db/migrate/20140416074002_add_index_on_iid.rb
+25
-0
未找到文件。
app/models/milestone.rb
浏览文件 @
ae7bd9f7
...
...
@@ -25,6 +25,7 @@ class Milestone < ActiveRecord::Base
scope
:active
,
->
{
with_state
(
:active
)
}
scope
:closed
,
->
{
with_state
(
:closed
)
}
scope
:of_projects
,
->
(
ids
)
{
where
(
project_id:
ids
)
}
validates
:title
,
presence:
true
validates
:project
,
presence:
true
...
...
db/migrate/20140416074002_add_index_on_iid.rb
浏览文件 @
ae7bd9f7
class
AddIndexOnIid
<
ActiveRecord
::
Migration
def
change
RemoveDuplicateIid
.
clean
(
Issue
)
RemoveDuplicateIid
.
clean
(
MergeRequest
,
'target_project_id'
)
RemoveDuplicateIid
.
clean
(
Milestone
)
add_index
:issues
,
[
:project_id
,
:iid
],
unique:
true
add_index
:merge_requests
,
[
:target_project_id
,
:iid
],
unique:
true
add_index
:milestones
,
[
:project_id
,
:iid
],
unique:
true
end
end
class
RemoveDuplicateIid
def
self
.
clean
(
klass
,
project_field
=
'project_id'
)
duplicates
=
klass
.
find_by_sql
(
"SELECT iid,
#{
project_field
}
FROM
#{
klass
.
table_name
}
GROUP BY
#{
project_field
}
, iid HAVING COUNT(*) > 1"
)
duplicates
.
each
do
|
duplicate
|
project_id
=
duplicate
.
send
(
project_field
)
iid
=
duplicate
.
iid
items
=
klass
.
of_projects
(
project_id
).
where
(
iid:
iid
)
if
items
.
size
>
1
puts
"Remove
#{
klass
.
name
}
duplicates for iid:
#{
iid
}
and project_id:
#{
project_id
}
"
items
.
shift
items
.
each
do
|
item
|
item
.
destroy
puts
'.'
end
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录