2012-06-05 12 views
50

miałem pierwotnie stworzony tabelę z kolumną jakoSzyny migracji do null kolumna => true

t.string "email", :default => "", :null => false 

Wymóg został zmieniony i teraz muszę pozwolić email aby być null. Jak mogę napisać migrację do: null => true

+1

możliwy duplikat [Jak zmienić kolumnę zerowalną, aby nie podlegała zerowaniu w migracji Rails?] (Http://stackoverflow.com/questions/5966840/how-to-change-a-ululble-column-to-not -nullable-in-a-rails-migration) – laffuste

Odpowiedz

69

Spróbuj:

change_column :table_name, :email, :string, :null => true 
+0

Dziękuję ... pracowałem! – Pykih

+0

Proszę rozważyć użycie 'change_column_null' ponieważ ta' change_column' może nie działać w pewnej wersji –

50

nie mogłem dostać się wyżej rozwiązanie do pracy z Active Record 4.0.8 i PostgreSQL 9.3

jednak change_column_null działało idealnie.

change_column_null :users, :email, true 

Odwrotna posiada ładny opcja aktualizacji istniejących rekordów (ale nie ustawienie domyślne), gdy wartość null nie jest dozwolony.

+5

Polecam użycie 'change_column_default' wraz z tym jeśli chcesz, aby' null' była domyślną wartością kolumny. W przeciwnym razie będzie to "false" lub "0". –

Powiązane problemy