Wir haben ein Altsystem mit einer wackeligen Admin-Schnittstelle und einer der Benutzer konnte einige Datensätze löschen. Wir haben eine Sicherung von vor ein paar Tagen, aber wir nicht wollen nur die DB entfernen und wiederherstellen von der Sicherung - ich brauche nur ein paar Arten von Objekten von dort (viele Zeilen, aber nur ein paar assoziierte Objekte) .Restore Teil einer Datenbank
Wie kann ich nur einige Datensätze wiederherstellen? Ich dachte, die folgende funktionieren würde:
ActiveRecord::Base.establish_connection
auf die Backup-db- Besorgen Sie sich die Aufzeichnungen verbinden I (zB
widgets = Widget.all
) - Ändern Sie den Anschluss an die Produktion db (wieder mit
establish_connection
) wiederherstellen möchten
- Speichern Sie die Widgets (
widgets.save
) - aber es funktioniert nicht?
Gibt es etwas intrinsische in einem Active Objekt, das ich es mit der gleichen ID und alles rund um die production
Datenbank, obwohl es ursprünglich aus der backup
Datenbank machen Speichern ändern können, so sind sie ziemlich identisch, wie Sie waren vorher (abgesehen von der created_at
, natürlich, was in Ordnung ist)
Dies ist wahrscheinlich nicht der beste Weg, es zu tun, aber ich kann nicht wirklich bestimmen, was der beste Weg ist. Die Datenbank ist ziemlich hefty, so kann ich nicht wirklich rohe SQL oder so etwas bekommen.
Jede Hilfe wird geschätzt!
"Die Datenbank ist ziemlich hefty, so kann ich nicht wirklich rohe SQL oder so etwas bekommen." Was meinen Sie? –
Sie können eine db an eine gigantische SQL-Anweisung übergeben, die die Daten in der Datenbank enthält, die die Befehle ausführt, die zum Wiederherstellen der Daten erforderlich sind. Aber die db ist zu groß, um durch all das zu kriechen. :) – charlie