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?

Odpowiedzi:



248

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

change_column_null :users, :address, true

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.