Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
bc8ebefe
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 搜索 >>
提交
bc8ebefe
编写于
3月 22, 2013
作者:
A
Aaron Patterson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add uuid primary key support
上级
d25e4076
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
30 addition
and
3 deletion
+30
-3
activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
...record/connection_adapters/abstract/schema_definitions.rb
+3
-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/postgresql/schema_statements.rb
...ecord/connection_adapters/postgresql/schema_statements.rb
+9
-0
activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
...b/active_record/connection_adapters/postgresql_adapter.rb
+7
-0
activerecord/test/cases/adapters/postgresql/uuid_test.rb
activerecord/test/cases/adapters/postgresql/uuid_test.rb
+10
-0
未找到文件。
activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
浏览文件 @
bc8ebefe
...
...
@@ -64,8 +64,9 @@ def columns; @columns_hash.values; end
# Appends a primary key definition to the table definition.
# Can be called multiple times, but this is probably not a good idea.
def
primary_key
(
name
)
column
(
name
,
:primary_key
,
primary_key:
true
)
def
primary_key
(
name
,
type
=
:primary_key
,
options
=
{})
options
[
:primary_key
]
=
true
column
(
name
,
type
,
options
)
end
# Returns a ColumnDefinition for the column with name +name+.
...
...
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
浏览文件 @
bc8ebefe
...
...
@@ -178,7 +178,7 @@ def create_table(table_name, options = {})
Base
.
get_primary_key
table_name
.
to_s
.
singularize
}
td
.
primary_key
pk
td
.
primary_key
pk
,
options
.
fetch
(
:id
,
:primary_key
),
options
end
yield
td
if
block_given?
...
...
activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
浏览文件 @
bc8ebefe
...
...
@@ -10,6 +10,15 @@ def visit_AddColumn(o)
add_column_options!
(
sql
,
column_options
(
o
))
end
def
visit_ColumnDefinition
(
o
)
sql
=
super
if
o
.
primary_key?
&&
o
.
type
==
:uuid
sql
<<
" PRIMARY KEY "
add_column_options!
(
sql
,
column_options
(
o
))
end
sql
end
def
add_column_options!
(
sql
,
options
)
if
options
[
:array
]
||
options
[
:column
].
try
(
:array
)
sql
<<
'[]'
...
...
activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
浏览文件 @
bc8ebefe
...
...
@@ -330,6 +330,13 @@ def json(name, options = {})
class
TableDefinition
<
ActiveRecord
::
ConnectionAdapters
::
TableDefinition
include
ColumnMethods
def
primary_key
(
name
,
type
=
:primary_key
,
options
=
{})
return
super
unless
type
==
:uuid
options
[
:default
]
||=
'uuid_generate_v4()'
options
[
:primary_key
]
=
true
column
name
,
type
,
options
end
def
column
(
name
,
type
=
nil
,
options
=
{})
super
column
=
self
[
name
]
...
...
activerecord/test/cases/adapters/postgresql/uuid_test.rb
浏览文件 @
bc8ebefe
...
...
@@ -35,6 +35,16 @@ def teardown
@connection
.
execute
'drop table if exists pg_uuids'
end
def
test_id_is_uuid
assert_equal
:uuid
,
UUID
.
columns_hash
[
'id'
].
type
assert
UUID
.
primary_key
end
def
test_id_has_a_default
u
=
UUID
.
create
assert_not_nil
u
.
id
end
def
test_auto_create_uuid
u
=
UUID
.
create
u
.
reload
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录