2012-03-29 8 views
6

Mit Rails 3.2.2 und ruby 1.9.3dev und mysqlgenerieren Modelle aus vorhandenen Tabellen mit Rails 3

Ich bin neu und Schienen ruby. Wir haben eine bestehende Datenbank mit ein paar hundert Tabellen. Wir würden gerne ausprobieren, ob es eine positive Änderung von PHP & ZendFramework wäre.

Das Migrieren von Daten in eine andere Datenbank ist für uns keine Option, da derzeit mehrere andere Anwendungen diese Datenbank verwenden. Wir wollten ein Rails-Projekt an die bestehende Datenbank "anhängen".

Der Teil, den ich kämpfe, erzeugt alle Modelle aus unserer bestehenden Datenbank.

Ich habe ein paar ältere Beiträge über einige automatisierte Techniken gesehen, einschließlich Magic Model Generator. Während andere darüber sprachen, gibt es keine Möglichkeit, dies zu tun, oder Sie müssen sie alle manuell erstellen.

ich war nicht erfolgreich bei der Erzeugung von Modellen Magie Modell Generator mit (vielleicht 2 nur Schienen?)

Vor langer Zeit, als wir nach ZendFramework geschaltet, schrieb ich eine schnelle Skript, um die Datenbank zu analysieren und alle Modelldateien erzeugen für uns. Es scheint, dass dies ein etwas gewöhnliches Szenario wäre.

Hinweis: Wir verwenden ID anstelle von id und viele haben viele foreign_key Beziehungen.

Also wollte ich die Community fragen, was ist der beste (Weg/Praxis), damit umzugehen?

Antwort

2

Es ist nicht so schwierig, nur ein bisschen mehr Konfiguration nimmt. Hier ist eine grundlegende Vorlage für ein Modell:

class YourIdealModelName < ActiveRecord::Base 
    self.table_name = `actual_table_name` 
    self.primary_key = `ID` 

    belongs_to :other_ideal_model, 
    :foreign_key => 'foreign_key_on_other_table' 

    has_many :some_other_ideal_models, 
    :foreign_key => 'foreign_key_on_this_table', 
    :primary_key => 'primary_key_on_other_table' 
end 
+0

Danke für die Vorlage, das war eigentlich die Route, die ich in Erwägung zog. Ich dachte jedoch, dass es ein Werkzeug geben würde, das das schon machen könnte. –

+0

Anstelle von magischen Modellen können Sie magische Modelle ausprobieren. Es wird die Modelldateien nicht generieren, aber Sie werden sie in Ihrer App verfügbar haben, und ich habe es erfolgreich in einer App für Schienen 3 verwendet. –

+0

Haben Sie einen Link für weitere Informationen über magische Modelle? –

0

Ich bin kein Experte und habe sogar darüber recherchiert. Ohne zu viel zu denken erste Lösung in meinem Kopf ist es, die Modelle und Migrationen nach den Schienen so zu machen, dass Sie kein Problem haben, zum Beispiel Schlüssel und Fremdschlüsselbenennung. Wenn Sie bereits Daten haben, sollten Sie sie auf die rails db migrieren.

Ein Grund dafür ist, dass Modelle sind wohl nicht nur die Datenzugriffsmethoden sein, sondern enthalten auch die Geschäftslogik

+1

Vielen Dank für Ihre Idee. Das Migrieren von Daten in eine andere Datenbank ist für uns keine Option, da diese Datenbank derzeit von mehreren anderen Anwendungen verwendet wird. Wir wollten ein Rails-Projekt an die Datenbank "anhängen". –

Verwandte Themen