2014-03-12 2 views

Antwort

15
class YourMigration < ActiveRecord::Migration 
    def change 
    change_column :users, :login, :string, :limit => 55 
    end 
end 
+9

Dies ohne die bisherige Grenze nicht umkehrbar scheint in der Migration –

+0

Ja, @ChrisBeck diese Migration irreversibel ist. –

42
class YourMigration < ActiveRecord::Migration 
    def up 
    change_column :users, :login, :string, :limit => 55 
    end 

    def down 
    change_column :users, :login, :string, :limit => 40 
    end 
end 
+0

zerstört oder bewahrt bestehende Werte in der Produktionsdatenbank? – BKSpurgeon

+3

Nach meiner Erfahrung wird dies Daten erhalten und gilt als eine sichere Aktion. –

+0

Ich mag diese Lösung oder die untenstehende nicht, da sie möglicherweise nicht reversibel sind. Wenn Sie Daten haben, die länger als 40 Zeichen für die Anmelder-Zeichenfolge sind und Sie versuchen, die Migration zurückzusetzen, wird der folgende Fehler angezeigt: ActiveRecord :: StatementInvalid: PG :: StringDataRightTruncation: FEHLER: Wert zu lang für Typenzeichenvariieren (40) . –