2010-11-22 6 views
1

Ich habe eine 5k Zeile MySQL Datenbankstruktur aus einer Legacy-Anwendung und muss dies importieren/in eine Reihe von Rails db/Migrationsdateien konvertieren.MySQL Legacy zu Rails Migration Konvertierung

Gibt es Werkzeuge dafür? Kann man Rails irgendwie mitteilen, dass er sich mit einer Legacy-DB verbinden und daraus ein Schema herausziehen soll?

Danke.

+0

Nun - es scheint, als wäre eine gute Möglichkeit, davon wegzukommen, sich einfach mit der Datenbank (MySQL) zu verbinden und dann einen Schema-Dump mit Rake zu machen. – EarlyPoster

+0

Das Problem mit dem Obengenannten ist, dass ich versuche, mich von Oracle-Produkten so gut wie möglich fernzuhalten. So wäre eine Konverter-Anwendung (ohne die Software installieren zu müssen) ideal für die Geschwindigkeit. – EarlyPoster

Antwort

2

Schienen sind mit dieser Funktion ausgestattet.

Zeigen Sie Ihre Rails-App auf das "Legacy" -Schema, indem Sie database.yml (wahrscheinlich für Ihre Entwicklungsumgebung) ändern.

Führen Sie rake db:schema:export.

Jetzt haben Sie eine richtige Ruby-Datei in der Migration DSL bei db/schema.rb, die es agnostisch macht (was bedeutet, dass es auch herstellerspezifische Elemente auslässt).

Lesen Sie diesen Artikel: Migrations – Schema Dumping and You für Details.

1

Wenn Sie Ihr gesamtes Modell mit der Datenbankstruktur erstellen, können Sie es genauso verwenden, wie es bereits ohne Änderung ist.

Nachdem Sie einige Migration tun können, um mehr railway zu tun.

+0

Shingara, ich verstehe, ich kann es sofort verwenden. Ein Datenbankschema, das aus einer vorhandenen Datenbank erstellt wird, wäre jedoch ideal. – EarlyPoster

+0

In ActiveRecord gibt es kein Schema, das Schema ist die Datenbank. – shingara

1

Dies wird Ihre DB importieren und Sie Ausgabe Rails Migrationen lassen, unter anderem: SQLEditor

+0

Das sieht perfekt aus, leider bin ich gerade auf Gentoo und kann OSX-Anwendungen nicht emulieren. – EarlyPoster

1

Danke für die Antworten. @Georges, ich betreibe Gentoo. @ Shingara - die Erstellung aller meiner Modelle würde zunächst Tage dauern.

Das Endergebnis war (schnellste Möglichkeit, dies zu tun), leider , um schnell einen MySQL-Datenbankserver einzurichten. Bringen Sie die Struktur auf. Lassen Sie Rails einen Schema-Dump ausführen (über eine App). Verwenden Sie dann die neu exportierte Datenstruktur für die neue Datenbank.

Es wäre schön, wenn Sie die MySQL-Struktur und den Datenabzug konvertieren könnten, ohne eine Oracle-Software auf Ihrem Rechner installieren zu müssen.