Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
d4ebba27
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 搜索 >>
未验证
提交
d4ebba27
编写于
5月 13, 2020
作者:
S
Santiago Bartesaghi
提交者:
eileencodes
5月 13, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #39205 ReadOnlyError when on writing connection
上级
ed29afcc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
50 addition
and
1 deletion
+50
-1
activerecord/lib/active_record/test_fixtures.rb
activerecord/lib/active_record/test_fixtures.rb
+1
-1
activerecord/test/cases/fixtures_test.rb
activerecord/test/cases/fixtures_test.rb
+49
-0
未找到文件。
activerecord/lib/active_record/test_fixtures.rb
浏览文件 @
d4ebba27
...
...
@@ -190,7 +190,7 @@ def enlist_fixture_connections
# need to share a connection pool so that the reading connection
# can see data in the open transaction on the writing connection.
def
setup_shared_connection_pool
writing_handler
=
ActiveRecord
::
Base
.
connection_handler
writing_handler
=
ActiveRecord
::
Base
.
connection_handler
s
[
ActiveRecord
::
Base
.
writing_role
]
ActiveRecord
::
Base
.
connection_handlers
.
values
.
each
do
|
handler
|
if
handler
!=
writing_handler
...
...
activerecord/test/cases/fixtures_test.rb
浏览文件 @
d4ebba27
...
...
@@ -1418,3 +1418,52 @@ def with_temporary_connection_pool
end
end
end
class
UsesWritingConnectionForFixtures
<
ActiveRecord
::
TestCase
include
ActiveRecord
::
TestFixtures
self
.
use_transactional_tests
=
true
fixtures
:dogs
def
setup
@old_handler
=
ActiveRecord
::
Base
.
connection_handler
@old_handlers
=
ActiveRecord
::
Base
.
connection_handlers
@prev_configs
,
ActiveRecord
::
Base
.
configurations
=
ActiveRecord
::
Base
.
configurations
,
config
db_config
=
ActiveRecord
::
DatabaseConfigurations
::
HashConfig
.
new
(
ENV
[
"RAILS_ENV"
],
"readonly"
,
readonly_config
)
handler
=
ActiveRecord
::
ConnectionAdapters
::
ConnectionHandler
.
new
handler
.
establish_connection
(
db_config
)
ActiveRecord
::
Base
.
connection_handlers
=
{}
ActiveRecord
::
Base
.
connection_handler
=
handler
ActiveRecord
::
Base
.
connects_to
(
database:
{
writing: :default
,
reading: :readonly
})
end
def
teardown
ActiveRecord
::
Base
.
configurations
=
@prev_configs
ActiveRecord
::
Base
.
connection_handler
=
@old_handler
ActiveRecord
::
Base
.
connection_handlers
=
@old_handlers
end
def
test_uses_writing_connection_for_fixtures
ActiveRecord
::
Base
.
connected_to
(
role: :reading
)
do
Dog
.
first
assert_nothing_raised
do
ActiveRecord
::
Base
.
connected_to
(
role: :writing
)
{
Dog
.
create!
alias:
"Doggo"
}
end
end
end
private
def
config
{
"default"
=>
default_config
,
"readonly"
=>
readonly_config
}
end
def
default_config
{
"adapter"
=>
"sqlite3"
,
"database"
=>
"test/fixtures/fixture_database.sqlite3"
}
end
def
readonly_config
default_config
.
merge
(
"replica"
=>
true
)
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录