2016-04-06 6 views
0

Ich habe eine Tabelle mit vielen Daten. Die spezifische Spalte, in der ich Werte ersetzen möchte, ist der dezimale Datentyp. Ich möchte alle Werte ersetzen, die 0 in null sind. Wie macht man das mit Rails-Migrationen? Ich möchte dasselbe für Spalten des Datumstyps tun, die zum Beispiel 1111-11-11 entsprechen.Schienen: Konvertieren Sie alle Werte, die in Null übereinstimmen

+0

Ändern Sie die Struktur Ihres Schemas oder versuchen Sie nur, die Daten zu ändern? –

+0

@AnthonyE Nur Daten – Kunok

Antwort

1

Im Allgemeinen werden Migrationen verwendet, um die Struktur der Datenbank zu ändern, nicht ihren Inhalt.

Um alle Zeilen aktualisieren Wert übereinstimmt, gefunden

Model.where(column_name: 0).update_all(column_name: nil) 

Sie könnten das gleiche mit dem Datum Art tun:

Model.where(date: '1111-11-11').update_all(column_name: nil) 

Sie diese in einer Migration setzen könnte, sondern eine Aufgabe Rake könnte ein geeigneterer Ort sein.

Verwandte Themen