Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
1aa052c6
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,发现更多精彩内容 >>
提交
1aa052c6
编写于
6月 19, 2012
作者:
C
Carlos Antonio da Silva
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #6779 from simonjefford/db-rake-charset
Refactor db:charset task
上级
4d69cdbd
363ab882
变更
9
显示空白变更内容
内联
并排
Showing
9 changed file
with
118 addition
and
20 deletion
+118
-20
activerecord/lib/active_record/railties/databases.rake
activerecord/lib/active_record/railties/databases.rake
+1
-14
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
+5
-1
activerecord/lib/active_record/tasks/postgresql_database_tasks.rb
...cord/lib/active_record/tasks/postgresql_database_tasks.rb
+5
-1
activerecord/lib/active_record/tasks/sqlite_database_tasks.rb
...verecord/lib/active_record/tasks/sqlite_database_tasks.rb
+5
-1
activerecord/test/cases/database_tasks_test.rb
activerecord/test/cases/database_tasks_test.rb
+34
-0
activerecord/test/cases/mysql_rake_test.rb
activerecord/test/cases/mysql_rake_test.rb
+19
-1
activerecord/test/cases/postgresql_rake_test.rb
activerecord/test/cases/postgresql_rake_test.rb
+19
-1
activerecord/test/cases/sqlite_rake_test.rb
activerecord/test/cases/sqlite_rake_test.rb
+21
-1
未找到文件。
activerecord/lib/active_record/railties/databases.rake
浏览文件 @
1aa052c6
...
@@ -143,20 +143,7 @@ db_namespace = namespace :db do
...
@@ -143,20 +143,7 @@ db_namespace = namespace :db do
# desc "Retrieves the charset for the current environment's database"
# desc "Retrieves the charset for the current environment's database"
task
:charset
=>
[
:environment
,
:load_config
]
do
task
:charset
=>
[
:environment
,
:load_config
]
do
config
=
ActiveRecord
::
Base
.
configurations
[
Rails
.
env
||
'development'
]
puts
ActiveRecord
::
Tasks
::
DatabaseTasks
.
charset_current
case
config
[
'adapter'
]
when
/mysql/
ActiveRecord
::
Base
.
establish_connection
(
config
)
puts
ActiveRecord
::
Base
.
connection
.
charset
when
/postgresql/
ActiveRecord
::
Base
.
establish_connection
(
config
)
puts
ActiveRecord
::
Base
.
connection
.
encoding
when
/sqlite/
ActiveRecord
::
Base
.
establish_connection
(
config
)
puts
ActiveRecord
::
Base
.
connection
.
encoding
else
$stderr
.
puts
'sorry, your database adapter is not supported yet, feel free to submit a patch'
end
end
end
# desc "Retrieves the collation for the current environment's database"
# desc "Retrieves the collation for the current environment's database"
...
...
activerecord/lib/active_record/tasks/database_tasks.rb
浏览文件 @
1aa052c6
...
@@ -47,6 +47,15 @@ def drop_current(environment = Rails.env)
...
@@ -47,6 +47,15 @@ def drop_current(environment = Rails.env)
}
}
end
end
def
charset_current
(
environment
=
Rails
.
env
)
charset
ActiveRecord
::
Base
.
configurations
[
environment
]
end
def
charset
(
*
arguments
)
configuration
=
arguments
.
first
class_for_adapter
(
configuration
[
'adapter'
]).
new
(
*
arguments
).
charset
end
def
purge
(
configuration
)
def
purge
(
configuration
)
class_for_adapter
(
configuration
[
'adapter'
]).
new
(
configuration
).
purge
class_for_adapter
(
configuration
[
'adapter'
]).
new
(
configuration
).
purge
end
end
...
...
activerecord/lib/active_record/tasks/mysql_database_tasks.rb
浏览文件 @
1aa052c6
...
@@ -40,6 +40,10 @@ def purge
...
@@ -40,6 +40,10 @@ def purge
connection
.
recreate_database
configuration
[
'database'
],
creation_options
connection
.
recreate_database
configuration
[
'database'
],
creation_options
end
end
def
charset
connection
.
charset
end
private
private
def
configuration
def
configuration
...
...
activerecord/lib/active_record/tasks/postgresql_database_tasks.rb
浏览文件 @
1aa052c6
...
@@ -23,6 +23,10 @@ def drop
...
@@ -23,6 +23,10 @@ def drop
connection
.
drop_database
configuration
[
'database'
]
connection
.
drop_database
configuration
[
'database'
]
end
end
def
charset
connection
.
encoding
end
def
purge
def
purge
clear_active_connections!
clear_active_connections!
drop
drop
...
...
activerecord/lib/active_record/tasks/sqlite_database_tasks.rb
浏览文件 @
1aa052c6
...
@@ -27,6 +27,10 @@ def drop
...
@@ -27,6 +27,10 @@ def drop
end
end
alias
:purge
:drop
alias
:purge
:drop
def
charset
connection
.
encoding
end
private
private
def
configuration
def
configuration
...
...
activerecord/test/cases/database_tasks_test.rb
浏览文件 @
1aa052c6
...
@@ -294,4 +294,38 @@ def test_sqlite_create
...
@@ -294,4 +294,38 @@ def test_sqlite_create
ActiveRecord
::
Tasks
::
DatabaseTasks
.
purge
'adapter'
=>
'sqlite3'
ActiveRecord
::
Tasks
::
DatabaseTasks
.
purge
'adapter'
=>
'sqlite3'
end
end
end
end
class
DatabaseTasksCharsetTest
<
ActiveRecord
::
TestCase
def
setup
@mysql_tasks
,
@postgresql_tasks
,
@sqlite_tasks
=
stub
,
stub
,
stub
ActiveRecord
::
Tasks
::
MySQLDatabaseTasks
.
stubs
(
:new
).
returns
@mysql_tasks
ActiveRecord
::
Tasks
::
PostgreSQLDatabaseTasks
.
stubs
(
:new
).
returns
@postgresql_tasks
ActiveRecord
::
Tasks
::
SQLiteDatabaseTasks
.
stubs
(
:new
).
returns
@sqlite_tasks
end
def
test_mysql_charset
@mysql_tasks
.
expects
(
:charset
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
charset
'adapter'
=>
'mysql'
end
def
test_mysql2_charset
@mysql_tasks
.
expects
(
:charset
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
charset
'adapter'
=>
'mysql2'
end
def
test_postgresql_charset
@postgresql_tasks
.
expects
(
:charset
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
charset
'adapter'
=>
'postgresql'
end
def
test_sqlite_charset
@sqlite_tasks
.
expects
(
:charset
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
charset
'adapter'
=>
'sqlite3'
end
end
end
end
activerecord/test/cases/mysql_rake_test.rb
浏览文件 @
1aa052c6
...
@@ -176,4 +176,22 @@ def test_recreates_database_with_the_given_options
...
@@ -176,4 +176,22 @@ def test_recreates_database_with_the_given_options
)
)
end
end
end
end
class
MysqlDBCharsetTest
<
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_charset
@connection
.
expects
(
:charset
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
charset
@configuration
end
end
end
end
activerecord/test/cases/postgresql_rake_test.rb
浏览文件 @
1aa052c6
...
@@ -132,4 +132,22 @@ def test_establishes_connection
...
@@ -132,4 +132,22 @@ def test_establishes_connection
ActiveRecord
::
Tasks
::
DatabaseTasks
.
purge
@configuration
ActiveRecord
::
Tasks
::
DatabaseTasks
.
purge
@configuration
end
end
end
end
class
PostgreSQLDBCharsetTest
<
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_charset
@connection
.
expects
(
:encoding
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
charset
@configuration
end
end
end
end
activerecord/test/cases/sqlite_rake_test.rb
浏览文件 @
1aa052c6
...
@@ -103,4 +103,24 @@ def test_removes_file_with_relative_path
...
@@ -103,4 +103,24 @@ def test_removes_file_with_relative_path
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop
@configuration
,
'/rails/root'
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop
@configuration
,
'/rails/root'
end
end
end
end
class
SqliteDBCharsetTest
<
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_charset
@connection
.
expects
(
:encoding
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
charset
@configuration
,
'/rails/root'
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录