2009-02-10 7 views

Antwort

25

Rails 3 und höher verwenden Sie folgenden Code:

rails generate migration add_fieldname_id_to_tablename fieldname:string 

Rails 2

ruby script/generate migration add_fieldname_to_tablename fieldname:string 

Dies funktioniert nicht mehr und gibt den folgenden Fehler in Rails 3:

Ruby: Keine solche Datei oder Verzeichnis - script/generate (LoadError)

+0

Danke, wäre schön, die nicht funktionierende Kombination zu streichen, obwohl es ein bisschen verwirrt ... Oder kann eine Art von Headern (Rails <= 2, Rails > = 3 zum Beispiel). – Wiseman

+0

Danke Wiseman, gerade bearbeitet, um das zu berücksichtigen, ist das besser? – BookOfGreg

+0

Ja, perfekt, danke :) – Wiseman

12

Die beste Antwort, die ich bisher gefunden habe diese Wurzel aus dem Projekt ausgeführt wird:

ruby script/generate migration add_d_column_to_myModel 

die neue Migrationsdatei in db/Migration befindet sich dann bearbeiten etwas aussehen:

def self.up 
    add_column :myModel, :d, :string 
    end 

    def self.down 
    remove_column :myModel, :d 
    end 

Der letzte Schritt besteht darin, Ihre Ansichten entsprechend zu aktualisieren.

Antwort gefunden here

Tabellenfunktionen here gefunden

+0

Verwirrt - warum haben Sie die Frage gestellt, ob Sie eine gute Antwort hatten? Warum nicht in der ursprünglichen Frage posten und nach besseren Lösungen fragen? – zenazn

+1

Ich denke, Sie haben Ihre eigene Frage beantwortet. Eine Sache werde ich jedoch sagen, dass Sie in einigen Fällen die Modellmigration direkt bearbeiten können. Migrationen sind großartig, wenn Sie eine Website in Produktion haben, aber für die laufende Entwicklung haben Sie oft den Luxus, die DB wegzublasen und von vorne anzufangen. –

+2

Ich habe meine eigene Frage aus 2 Gründen beantwortet. Erstens, das war die beste Antwort, die ich gefunden habe, aber ich bin neu bei Rails und dachte, es könnte einen besseren Weg geben, den ich nicht gefunden habe. Zweitens war die Frage nicht auf StackOverflow gepostet worden, also habe ich beschlossen, sie hinzuzufügen. –

19
ruby script/generate migration add_fieldname_to_tablename fieldname:string 

das ist die Abkürzung Methode genau das zu tun, was Sie wollen. Wenn Sie mehr Kontrolle benötigen, oder wenn Sie viele Spalten hinzufügen müssen, wird die Antwort von Andrew H auch gut funktionieren.

+0

wird dies auch die Ansichten aktualisieren? – femi

+3

Nein, die Ansichten werden nicht aktualisiert. – cynicalman

+0

Dies war die akzeptierte Antwort, aber ich habe sie aufgrund der Notiz in NeoNMDs Antwort auf diese Antwort geändert. –

Verwandte Themen