Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
cca614bc
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,发现更多精彩内容 >>
提交
cca614bc
编写于
6月 30, 2012
作者:
R
Rafael Mendonça França
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #6906 from kennyj/extract_collation
Extract collation tasks to database tasks.
上级
f0214678
bece59e3
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
88 addition
and
8 deletion
+88
-8
activerecord/lib/active_record/railties/databases.rake
activerecord/lib/active_record/railties/databases.rake
+3
-8
activerecord/lib/active_record/tasks/database_tasks.rb
activerecord/lib/active_record/tasks/database_tasks.rb
+9
-0
activerecord/lib/active_record/tasks/mysql_database_tasks.rb
activerecord/lib/active_record/tasks/mysql_database_tasks.rb
+4
-0
activerecord/lib/active_record/tasks/postgresql_database_tasks.rb
...cord/lib/active_record/tasks/postgresql_database_tasks.rb
+4
-0
activerecord/test/cases/tasks/database_tasks_test.rb
activerecord/test/cases/tasks/database_tasks_test.rb
+11
-0
activerecord/test/cases/tasks/mysql_rake_test.rb
activerecord/test/cases/tasks/mysql_rake_test.rb
+18
-0
activerecord/test/cases/tasks/postgresql_rake_test.rb
activerecord/test/cases/tasks/postgresql_rake_test.rb
+18
-0
activerecord/test/cases/tasks/sqlite_rake_test.rb
activerecord/test/cases/tasks/sqlite_rake_test.rb
+21
-0
未找到文件。
activerecord/lib/active_record/railties/databases.rake
浏览文件 @
cca614bc
...
...
@@ -148,14 +148,9 @@ db_namespace = namespace :db do
# desc "Retrieves the collation for the current environment's database"
task
:collation
=>
[
:environment
,
:load_config
]
do
config
=
ActiveRecord
::
Base
.
configurations
[
Rails
.
env
||
'development'
]
case
config
[
'adapter'
]
when
/mysql/
ActiveRecord
::
Base
.
establish_connection
(
config
)
puts
ActiveRecord
::
Base
.
connection
.
collation
else
$stderr
.
puts
'sorry, your database adapter is not supported yet, feel free to submit a patch'
end
puts
ActiveRecord
::
Tasks
::
DatabaseTasks
.
collation_current
ensure
NoMethodError
$stderr
.
puts
'sorry, your database adapter is not supported yet, feel free to submit a patch'
end
desc
'Retrieves the current schema version number'
...
...
activerecord/lib/active_record/tasks/database_tasks.rb
浏览文件 @
cca614bc
...
...
@@ -56,6 +56,15 @@ def charset(*arguments)
class_for_adapter
(
configuration
[
'adapter'
]).
new
(
*
arguments
).
charset
end
def
collation_current
(
environment
=
Rails
.
env
)
collation
ActiveRecord
::
Base
.
configurations
[
environment
]
end
def
collation
(
*
arguments
)
configuration
=
arguments
.
first
class_for_adapter
(
configuration
[
'adapter'
]).
new
(
*
arguments
).
collation
end
def
purge
(
configuration
)
class_for_adapter
(
configuration
[
'adapter'
]).
new
(
configuration
).
purge
end
...
...
activerecord/lib/active_record/tasks/mysql_database_tasks.rb
浏览文件 @
cca614bc
...
...
@@ -44,6 +44,10 @@ def charset
connection
.
charset
end
def
collation
connection
.
collation
end
def
structure_dump
(
filename
)
establish_connection
configuration
File
.
open
(
filename
,
"w:utf-8"
)
{
|
f
|
f
<<
ActiveRecord
::
Base
.
connection
.
structure_dump
}
...
...
activerecord/lib/active_record/tasks/postgresql_database_tasks.rb
浏览文件 @
cca614bc
...
...
@@ -29,6 +29,10 @@ def charset
connection
.
encoding
end
def
collation
connection
.
collate
end
def
purge
clear_active_connections!
drop
...
...
activerecord/test/cases/tasks/database_tasks_test.rb
浏览文件 @
cca614bc
...
...
@@ -251,6 +251,17 @@ class DatabaseTasksCharsetTest < ActiveRecord::TestCase
end
end
class
DatabaseTasksCollationTest
<
ActiveRecord
::
TestCase
include
DatabaseTasksSetupper
ADAPTERS_TASKS
.
each
do
|
k
,
v
|
define_method
(
"test_
#{
k
}
_collation"
)
do
eval
(
"@
#{
v
}
"
).
expects
(
:collation
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
collation
'adapter'
=>
k
end
end
end
class
DatabaseTasksStructureDumpTest
<
ActiveRecord
::
TestCase
include
DatabaseTasksSetupper
...
...
activerecord/test/cases/tasks/mysql_rake_test.rb
浏览文件 @
cca614bc
...
...
@@ -195,6 +195,24 @@ def test_db_retrieves_charset
end
end
class
MysqlDBCollationTest
<
ActiveRecord
::
TestCase
def
setup
@connection
=
stub
(
:create_database
=>
true
)
@configuration
=
{
'adapter'
=>
'mysql'
,
'database'
=>
'my-app-db'
}
ActiveRecord
::
Base
.
stubs
(
:connection
).
returns
(
@connection
)
ActiveRecord
::
Base
.
stubs
(
:establish_connection
).
returns
(
true
)
end
def
test_db_retrieves_collation
@connection
.
expects
(
:collation
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
collation
@configuration
end
end
class
MySQLStructureDumpTest
<
ActiveRecord
::
TestCase
def
setup
@connection
=
stub
(
:structure_dump
=>
true
)
...
...
activerecord/test/cases/tasks/postgresql_rake_test.rb
浏览文件 @
cca614bc
...
...
@@ -159,6 +159,24 @@ def test_db_retrieves_charset
end
end
class
PostgreSQLDBCollationTest
<
ActiveRecord
::
TestCase
def
setup
@connection
=
stub
(
:create_database
=>
true
)
@configuration
=
{
'adapter'
=>
'postgresql'
,
'database'
=>
'my-app-db'
}
ActiveRecord
::
Base
.
stubs
(
:connection
).
returns
(
@connection
)
ActiveRecord
::
Base
.
stubs
(
:establish_connection
).
returns
(
true
)
end
def
test_db_retrieves_collation
@connection
.
expects
(
:collate
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
collation
@configuration
end
end
class
PostgreSQLStructureDumpTest
<
ActiveRecord
::
TestCase
def
setup
@connection
=
stub
(
:structure_dump
=>
true
)
...
...
activerecord/test/cases/tasks/sqlite_rake_test.rb
浏览文件 @
cca614bc
...
...
@@ -124,6 +124,27 @@ def test_db_retrieves_charset
end
end
class
SqliteDBCollationTest
<
ActiveRecord
::
TestCase
def
setup
@database
=
'db_create.sqlite3'
@connection
=
stub
:connection
@configuration
=
{
'adapter'
=>
'sqlite3'
,
'database'
=>
@database
}
File
.
stubs
(
:exist?
).
returns
(
false
)
ActiveRecord
::
Base
.
stubs
(
:connection
).
returns
(
@connection
)
ActiveRecord
::
Base
.
stubs
(
:establish_connection
).
returns
(
true
)
end
def
test_db_retrieves_collation
assert_raise
NoMethodError
do
ActiveRecord
::
Tasks
::
DatabaseTasks
.
collation
@configuration
,
'/rails/root'
end
end
end
class
SqliteStructureDumpTest
<
ActiveRecord
::
TestCase
def
setup
@database
=
"db_create.sqlite3"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录