Rails中的database.yml重新连接设置为true或false
在database.yml
,Rails 3和4上reconnect
的默认设置为false
。 什么是共同的设置,在什么情况下我们应该将其设置为true
? 谢谢。
你可以设置为true。 此选项在Rails 2.3中引入
MySQL在其连接中支持重新连接标志 – 如果设置为true,则客户端将尝试重新连接到服务器,然后在连接丢失的情况下放弃。 您现在可以为database.yml中的MySQL连接设置reconnect = true,以从Rails应用程序中获取此行为。
Rails团队将此选项默认设置为“false”,因为他们不想更改现有应用程序的行为。
但是如果我们设置reconnect = true
会有一些副作用。 它不是事务安全的。事实上,MySQL 文档明确指出自动重新连接function会影响事务。
回滚任何活动事务并重置自动提交模式。
未写入处理此问题的应用程序可能很容易破解。 该文档还列出了由自动重新连接function引起的许多其他副作用,所有这些都可能导致未写入的应用程序预期行为无法正常运行或失败。
校验:
rails 2.3发行说明
MySQL的重新连接-值犯规棒
看到这个StackOverflow问题