Migracja Railsów: Usuń ograniczenie

136

Mam tabelę w aplikacji Railsów, która (w schema.rb) wygląda następująco:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address", :null=>false
end

Chciałbym napisać migrację szyn, aby umożliwić null w polu adresu. czyli po migracji tabela wygląda następująco:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address"
end

Co muszę zrobić, aby usunąć ograniczenie?

Jay Godse
źródło

Odpowiedzi:

248

W Railsach 4+, aby usunąć ograniczenie niezerowe, możesz użyć change_column_null:

change_column_null :users, :address, true
deepak
źródło
Naprawdę tego próbowałeś? Jeśli raise NotImplementedError, "change_column_null is not implemented"
spojrzysz
3
użyłem go w postgresql. rails definiuje to w adapterze specyficznym dla bazy danych, patrz postgres , mysql . może szukać innych w apidock . Tak więc, będzie musiał sprawdzić adapter bazy danych pod kątem wsparcia, na wypadek, gdyby ktoś dostałNotImplementedError
deepak
1
Głosuj za! Tutaj jest również łącze do przewodników po Railsach .
mcKain
1
To powinna być wybrana odpowiedź
nahtnam