我想通过远程连接(例如通过ssh)使用数据库(mysql)。我想知道ActiveRecord是否使用交易? ActiveAdmin保存嵌套相关对象时使用的事务是什么?连接丢失时是否可能出现数据不一致?为此目的检查启用事务的选项(以及如何)是什么?
答案 0 :(得分:1)
通过直接或通过SSH连接到远程数据库,关于数据库如何/是否使用事务,这并不重要。只要存在连接,ORM / DB就不会关注网络连接的具体细节。
此外,ActiveAdmin不会决定如何应用事务。通常,在Rails中创建记录时使用事务,包括嵌套对象,因此如果父对象没有保存,则不会保存子对象。但是,根据您在ActiveRecord中声明关联的方式,可能会有例外情况。
在任何情况下,验证交易的最佳方法是检查您的应用程序日志。查找BEGIN
COMMIT
和ROLLBACK
语句,这些语句指示事务中包含的特定SQL语句。