【问题标题】:Rails ActiveRecord and active_admin and transactions with remote databaseRails ActiveRecord 和 active_admin 以及与远程数据库的事务
【发布时间】:2016-04-04 20:28:48
【问题描述】:

我想通过远程连接(例如通过 ssh)使用数据库(mysql)。我想知道ActiveRecord是用事务吗? ActiveAdmin 保存嵌套的相关对象时是否使用事务?连接丢失时是否可能发生数据不一致?为此目的检查启用事务的选项(以及如何)是什么?

【问题讨论】:

    标签: mysql ruby-on-rails activerecord transactions


    【解决方案1】:

    无论您是通过直接还是通过 SSH 连接到远程数据库,数据库如何/是否使用事务都无关紧要。只要存在连接,ORM/DB 就不会关心网络连接的具体细节。

    此外,ActiveAdmin 不决定如何应用事务。在 Rails 中创建记录时通常会使用事务,包括嵌套对象,因此如果父对象不保存,则不会保存子对象。但是,根据您在 ActiveRecord 中声明关联的方式,可能会有例外。

    无论如何,验证事务是否正常运行的最佳方法是检查您的应用程序日志。查找 BEGIN COMMITROLLBACK 语句,它们指示包装在事务中的特定 SQL 语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 2010-11-02
      相关资源
      最近更新 更多