2016-04-04 2 views
0

Ich möchte mit der Datenbank (Mysql) über Remote-Verbindung (über ssh zum Beispiel) arbeiten. Ich würde gerne wissen, ist ActiveRecord Transaktionen verwenden? Werden Transaktionen verwendet, wenn ActiveAdmin verschachtelte verwandte Objekte speichert? Kann es zu Dateninkonsistenz kommen, wenn die Verbindung verloren geht? Welche Möglichkeiten (und wie) gibt es, um Transaktionen zu diesem Zweck freizugeben?Rails ActiveRecord und active_admin und Transaktionen mit Remote-Datenbank

Antwort

1

Es spielt keine Rolle, ob Sie direkt oder per SSH eine Verbindung zu Ihrer entfernten DB herstellen, um festzustellen, ob und wie die Datenbank Transaktionen verwendet. Der ORM/DB beschäftigt sich nicht mit den spezifischen Details der Netzwerkverbindung, solange eine Verbindung vorhanden ist.

Auch ActiveAdmin entscheidet nicht, wie Transaktionen angewendet werden. In der Regel werden Transaktionen beim Erstellen von Datensätzen in Rails verwendet, auch für verschachtelte Objekte, sodass das untergeordnete Objekt nicht gespeichert wird, wenn das übergeordnete Objekt nicht gespeichert wird. Es kann jedoch Ausnahmen geben, abhängig davon, wie Sie Ihre Verknüpfungen in ActiveRecord deklarieren.

In jedem Fall überprüfen Sie die Anwendungsprotokolle am besten, um zu überprüfen, ob Transaktionen funktionieren. Suchen Sie nach BEGINCOMMIT und ROLLBACK Anweisungen, die bestimmte SQL-Anweisungen angeben, die in Transaktionen eingeschlossen sind.