Wie kann ich eine mySQL Datenbank in Ruby auf Rails kopieren?

8

Wir machen eine Ruby On Rails Webapp, wo jeder Kunde seine eigene Datenbank bekommt.
Die Datenbank muss erstellt werden, nachdem sie ein Formular auf unserer Website ausgefüllt haben.

Wir haben eine Vorlagen-Datenbank, die alle Tabellen und Spalten enthält, die wir kopieren müssen. Wie kann ich dies programmatisch von Ruby on Rails aus machen?

    
Tilendor 07.10.2008, 20:24
quelle

4 Antworten

7

Von jedem Controller aus können Sie die folgende Methode definieren.

%Vor%

Beachten Sie, dass ich nicht sicher bin, ob dies die Integrität des Schlüssels beibehält. Ich denke, es hängt sehr davon ab, wie die Template-Datenbank erstellt wird.

    
Tilendor 07.10.2008, 20:32
quelle
10

Ich bin mir nicht sicher, was Sie meinen, aber Sie können die Befehlszeilenfunktion von Ruby verwenden, um die Schablonendatenbank auszugeben, eine neue Datenbank zu erstellen und sie mit mysqldump Programm:

%Vor%

Hier ist eine gute Beschreibung der Befehlszeile Optionen von Ruby.

    
abarax 08.10.2008 12:56
quelle
1

Mit yaml_db

Sie müssen das Plugin installieren, eine Rails-Datenbank (einschließlich mysql) in der Datei data.yml mit Rake-Task ablegen, die Verbindungszeichenfolge ändern, um auf eine neue Datenbank zu zeigen und dann data.yml in eine neue Datenbank (einschließlich mysql) laden eine weitere Rechenaufgabe. Sehr einfach.

    
Kodak 27.10.2009 18:36
quelle
0

Sie könnten Ihren Template-Schema-Erstellungscode in ein Skript schreiben, das alle erforderlichen Tabellen- / Index- / View- / Prozedurerstellungsanweisungen enthält, nennen Sie es "template_schema.sql" oder was auch immer, und führen Sie das Skript dann einfach in der Datenbank Ihrer aus Wahl (aus Ruby, wenn du das willst) und du bist fertig.

Der beste Ansatz besteht wahrscheinlich darin, jedes Datenbankobjekt in einer separaten Datei unter Versionskontrolle zu haben (um die Verfolgung von Änderungen an einzelnen Objekten zu erleichtern) und diese dann als Teil der Bereitstellung in eine einzelne Datei zusammenführen zu lassen.

>     
ninesided 08.10.2008 03:01
quelle

Tags und Links