我想通过远程连接(例如通过ssh )使用数据库(mysql)。我想知道ActiveRecord使用的是交易吗?当ActiveAdmin保存嵌套的相关对象时是否使用事务?当连接中断时,是否有可能发生数据不一致?有哪些选项(以及如何)可以检查用于此目的的启用事务?
发布于 2016-04-05 05:28:24
对于数据库如何/是否使用事务,通过直接或通过SSH连接到远程数据库应该没有关系。只要存在连接,ORM/DB就不关心网络连接的具体细节。
此外,ActiveAdmin不决定如何应用事务。通常,在Rails中创建记录时会使用事务,包括嵌套对象,因此如果父对象不保存,则不会保存子对象。但是,根据您在ActiveRecord中声明关联的方式,可能会有例外。
在任何情况下,验证事务是否正常工作的最佳方法是检查应用程序日志。查找表示包装在事务中的特定BEGIN语句的SQLSQL语句和ROLLBACK语句。
https://stackoverflow.com/questions/36412299
复制相似问题