2016-04-04 16 views
0

リモート接続(たとえばssh経由)でデータベース(mysql)を使いたいと思っています。私はActiveRecordがトランザクションを使用していることを知りたいですか? ActiveAdminがネストされた関連オブジェクトを保存するときにトランザクションが使用されますか?接続が失われたときにデータ不一致が発生する可能性はありますか?この目的で有効になっているトランザクションを確認するオプション(および方法)は何ですか?Rails ActiveRecordとactive_adminとリモートデータベースとのトランザクション

答えて

1

DBがトランザクションをどのように使用するかについては、直接またはSSH経由でリモートDBに接続している必要はありません。 ORM/DBは、接続が存在する限り、ネットワーク接続の特定の詳細には関係しません。

また、ActiveAdminはトランザクションの適用方法を決定しません。通常、ネストされたオブジェクトも含めて、Railsでレコードを作成するときにトランザクションが使用されるため、親オブジェクトが保存しない場合、子オブジェクトは保存されません。ただし、ActiveRecordでのアソシエーションの宣言の仕方によっては例外があります。

いずれの場合でも、トランザクションが正常に動作しているかどうかを確認する最も良い方法は、アプリケーションログを確認することです。トランザクションにラップされた特定のSQLステートメントを示すBEGINCOMMITおよびROLLBACKステートメントを探します。

関連する問題