Rails中的database.yml重新连接设置为true或false

Vic*_*tor 7 ruby-on-rails

database.yml,reconnectRails 3和4 的默认设置是false.什么是共同的设置,在什么情况下我们应该设置它true?谢谢.

Abh*_*bhi 15

你可以设置为true.Rails 2.3中引入了此选项

MySQL在其连接中支持重新连接标志 - 如果设置为true,则客户端将尝试重新连接到服务器,然后在连接丢失的情况下放弃.您现在可以为database.yml中的MySQL连接设置reconnect = true,以便从Rails应用程序中获取此行为.

Rails团队将此选项默认设置为"false",因为他们不想更改现有应用程序的行为.

但是如果我们设置的话会有一些副作用reconnect = true.它不是事务安全的.事实上,MySQL 文档明确指出自动重新连接功能会影响事务.

回滚任何活动事务并重置自动提交模式.

未写入处理此问题的应用程序很容易破解.该文档还列出了由自动重新连接功能引起的许多其他副作用,所有这些都可能导致未写入的应用程序预期行为无法正常运行或失败.

校验:

rails 2.3发行说明

MySQL的重新连接 - 值犯规棒

看到这个StackOverflow问题