Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
8d5710c8
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 搜索 >>
提交
8d5710c8
编写于
6月 17, 2012
作者:
P
Pat Allan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Cleaning up after some warnings, adding slightly higher-level tests.
上级
4422e034
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
309 addition
and
9 deletion
+309
-9
activerecord/lib/active_record/tasks/database_tasks.rb
activerecord/lib/active_record/tasks/database_tasks.rb
+3
-3
activerecord/lib/active_record/tasks/mysql_database_tasks.rb
activerecord/lib/active_record/tasks/mysql_database_tasks.rb
+4
-2
activerecord/lib/active_record/tasks/postgresql_database_tasks.rb
...cord/lib/active_record/tasks/postgresql_database_tasks.rb
+3
-1
activerecord/lib/active_record/tasks/sqlite_database_tasks.rb
...verecord/lib/active_record/tasks/sqlite_database_tasks.rb
+3
-1
activerecord/test/cases/database_tasks_test.rb
activerecord/test/cases/database_tasks_test.rb
+296
-0
activerecord/test/cases/sqlite_rake_test.rb
activerecord/test/cases/sqlite_rake_test.rb
+0
-2
未找到文件。
activerecord/lib/active_record/tasks/database_tasks.rb
浏览文件 @
8d5710c8
...
...
@@ -19,7 +19,7 @@ def self.create_all
def
self
.
create_current
each_current_configuration
{
|
configuration
|
create
configuration
}
ActiveRecord
::
Base
.
establish_connection
Rails
.
env
.
to_sym
ActiveRecord
::
Base
.
establish_connection
Rails
.
env
end
def
self
.
drop
(
configuration
)
...
...
@@ -44,7 +44,7 @@ def self.purge(configuration)
private
def
self
.
class_for_adapter
(
adapter
)
key
=
TASKS_PATTERNS
.
keys
.
detect
{
|
key
|
adapter
[
key
]
}
key
=
TASKS_PATTERNS
.
keys
.
detect
{
|
pattern
|
adapter
[
pattern
]
}
TASKS_PATTERNS
[
key
]
end
...
...
@@ -52,7 +52,7 @@ def self.each_current_configuration
environments
=
[
Rails
.
env
]
environments
<<
'test'
if
Rails
.
env
.
development?
configurations
=
ActiveRecord
::
Base
.
configurations
.
values_at
*
environments
configurations
=
ActiveRecord
::
Base
.
configurations
.
values_at
(
*
environments
)
configurations
.
compact
.
each
do
|
configuration
|
yield
configuration
unless
configuration
[
'database'
].
blank?
end
...
...
activerecord/lib/active_record/tasks/mysql_database_tasks.rb
浏览文件 @
8d5710c8
...
...
@@ -39,7 +39,9 @@ def purge
private
attr_reader
:configuration
def
configuration
@configuration
end
def
configuration_without_database
configuration
.
merge
(
'database'
=>
nil
)
...
...
@@ -56,7 +58,7 @@ def error_class
case
configuration
[
'adapter'
]
when
/jdbc/
require
'active_record/railties/jdbcmysql_error'
error_class
=
ArJdbcMySQL
::
Error
ArJdbcMySQL
::
Error
when
/mysql2/
Mysql2
::
Error
else
...
...
activerecord/lib/active_record/tasks/postgresql_database_tasks.rb
浏览文件 @
8d5710c8
...
...
@@ -28,7 +28,9 @@ def purge
private
attr_reader
:configuration
def
configuration
@configuration
end
def
encoding
configuration
[
'encoding'
]
||
DEFAULT_ENCODING
...
...
activerecord/lib/active_record/tasks/sqlite_database_tasks.rb
浏览文件 @
8d5710c8
...
...
@@ -27,5 +27,7 @@ def drop
private
attr_reader
:configuration
def
configuration
@configuration
end
end
activerecord/test/cases/database_tasks_test.rb
0 → 100644
浏览文件 @
8d5710c8
require
'cases/helper'
module
ActiveRecord
class
DatabaseTasksCreateTest
<
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_create
@mysql_tasks
.
expects
(
:create
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create
'adapter'
=>
'mysql'
end
def
test_mysql2_create
@mysql_tasks
.
expects
(
:create
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create
'adapter'
=>
'mysql2'
end
def
test_postgresql_create
@postgresql_tasks
.
expects
(
:create
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create
'adapter'
=>
'postgresql'
end
def
test_sqlite_create
@sqlite_tasks
.
expects
(
:create
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create
'adapter'
=>
'sqlite3'
end
end
class
DatabaseTasksCreateAllTest
<
ActiveRecord
::
TestCase
def
setup
@configurations
=
{
'development'
=>
{
'database'
=>
'my-db'
}}
ActiveRecord
::
Base
.
stubs
(
:configurations
).
returns
(
@configurations
)
end
def
test_ignores_configurations_without_databases
@configurations
[
'development'
].
merge!
(
'database'
=>
nil
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:create
).
never
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create_all
end
def
test_ignores_remote_databases
@configurations
[
'development'
].
merge!
(
'host'
=>
'my.server.tld'
)
$stderr
.
stubs
(
:puts
).
returns
(
nil
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:create
).
never
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create_all
end
def
test_warning_for_remote_databases
@configurations
[
'development'
].
merge!
(
'host'
=>
'my.server.tld'
)
$stderr
.
expects
(
:puts
).
with
(
'This task only modifies local databases. my-db is on a remote host.'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create_all
end
def
test_creates_configurations_with_local_ip
@configurations
[
'development'
].
merge!
(
'host'
=>
'127.0.0.1'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:create
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create_all
end
def
test_creates_configurations_with_local_host
@configurations
[
'development'
].
merge!
(
'host'
=>
'localhost'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:create
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create_all
end
def
test_creates_configurations_with_blank_hosts
@configurations
[
'development'
].
merge!
(
'host'
=>
nil
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:create
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create_all
end
end
class
DatabaseTasksCreateCurrentTest
<
ActiveRecord
::
TestCase
def
setup
@configurations
=
{
'development'
=>
{
'database'
=>
'dev-db'
},
'test'
=>
{
'database'
=>
'test-db'
},
'production'
=>
{
'database'
=>
'prod-db'
}
}
ActiveRecord
::
Base
.
stubs
(
:configurations
).
returns
(
@configurations
)
ActiveRecord
::
Base
.
stubs
(
:establish_connection
).
returns
(
true
)
end
def
test_creates_current_environment_database
Rails
.
stubs
(
:env
).
returns
ActiveSupport
::
StringInquirer
.
new
(
'production'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:create
).
with
(
'database'
=>
'prod-db'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create_current
end
def
test_creates_test_database_when_environment_is_database
Rails
.
stubs
(
:env
).
returns
ActiveSupport
::
StringInquirer
.
new
(
'development'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:create
).
with
(
'database'
=>
'dev-db'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:create
).
with
(
'database'
=>
'test-db'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create_current
end
def
test_establishes_connection_for_the_given_environment
Rails
.
stubs
(
:env
).
returns
ActiveSupport
::
StringInquirer
.
new
(
'development'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
stubs
(
:create
).
returns
true
ActiveRecord
::
Base
.
expects
(
:establish_connection
).
with
(
'development'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
create_current
end
end
class
DatabaseTasksDropTest
<
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_create
@mysql_tasks
.
expects
(
:drop
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop
'adapter'
=>
'mysql'
end
def
test_mysql2_create
@mysql_tasks
.
expects
(
:drop
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop
'adapter'
=>
'mysql2'
end
def
test_postgresql_create
@postgresql_tasks
.
expects
(
:drop
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop
'adapter'
=>
'postgresql'
end
def
test_sqlite_create
@sqlite_tasks
.
expects
(
:drop
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop
'adapter'
=>
'sqlite3'
end
end
class
DatabaseTasksDropAllTest
<
ActiveRecord
::
TestCase
def
setup
@configurations
=
{
:development
=>
{
'database'
=>
'my-db'
}}
ActiveRecord
::
Base
.
stubs
(
:configurations
).
returns
(
@configurations
)
end
def
test_ignores_configurations_without_databases
@configurations
[
:development
].
merge!
(
'database'
=>
nil
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:drop
).
never
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop_all
end
def
test_ignores_remote_databases
@configurations
[
:development
].
merge!
(
'host'
=>
'my.server.tld'
)
$stderr
.
stubs
(
:puts
).
returns
(
nil
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:drop
).
never
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop_all
end
def
test_warning_for_remote_databases
@configurations
[
:development
].
merge!
(
'host'
=>
'my.server.tld'
)
$stderr
.
expects
(
:puts
).
with
(
'This task only modifies local databases. my-db is on a remote host.'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop_all
end
def
test_creates_configurations_with_local_ip
@configurations
[
:development
].
merge!
(
'host'
=>
'127.0.0.1'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:drop
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop_all
end
def
test_creates_configurations_with_local_host
@configurations
[
:development
].
merge!
(
'host'
=>
'localhost'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:drop
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop_all
end
def
test_creates_configurations_with_blank_hosts
@configurations
[
:development
].
merge!
(
'host'
=>
nil
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:drop
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop_all
end
end
class
DatabaseTasksDropCurrentTest
<
ActiveRecord
::
TestCase
def
setup
@configurations
=
{
'development'
=>
{
'database'
=>
'dev-db'
},
'test'
=>
{
'database'
=>
'test-db'
},
'production'
=>
{
'database'
=>
'prod-db'
}
}
ActiveRecord
::
Base
.
stubs
(
:configurations
).
returns
(
@configurations
)
end
def
test_creates_current_environment_database
Rails
.
stubs
(
:env
).
returns
ActiveSupport
::
StringInquirer
.
new
(
'production'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:drop
).
with
(
'database'
=>
'prod-db'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop_current
end
def
test_creates_test_database_when_environment_is_database
Rails
.
stubs
(
:env
).
returns
ActiveSupport
::
StringInquirer
.
new
(
'development'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:drop
).
with
(
'database'
=>
'dev-db'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
expects
(
:drop
).
with
(
'database'
=>
'test-db'
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
drop_current
end
end
class
DatabaseTasksPurgeTest
<
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_create
@mysql_tasks
.
expects
(
:purge
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
purge
'adapter'
=>
'mysql'
end
def
test_mysql2_create
@mysql_tasks
.
expects
(
:purge
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
purge
'adapter'
=>
'mysql2'
end
def
test_postgresql_create
@postgresql_tasks
.
expects
(
:purge
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
purge
'adapter'
=>
'postgresql'
end
def
test_sqlite_create
@sqlite_tasks
.
expects
(
:purge
)
ActiveRecord
::
Tasks
::
DatabaseTasks
.
purge
'adapter'
=>
'sqlite3'
end
end
end
activerecord/test/cases/sqlite_rake_test.rb
浏览文件 @
8d5710c8
require
'cases/helper'
require
'pathname'
module
Rails
;
end
unless
defined?
(
Rails
)
module
ActiveRecord
class
SqliteDBCreateTest
<
ActiveRecord
::
TestCase
def
setup
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录