Rails Migration: ลบข้อ จำกัด


136

ฉันมีตารางในแอปพลิเคชั่น Rails ซึ่ง (ใน schema.rb) ดูเหมือนว่า:

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

ฉันต้องการเขียนการโยกย้ายรางเพื่อให้มีค่า Null สำหรับช่องที่อยู่ นั่นคือหลังจากการโยกย้ายตารางจะมีลักษณะเช่นนี้:

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

ฉันต้องทำอะไรเพื่อลบข้อ จำกัด

คำตอบ:



248

ใน Rails 4+ เพื่อที่จะลบข้อ จำกัด non-null คุณสามารถใช้change_column_null:

change_column_null :users, :address, true

คุณลองสิ่งนี้จริงหรือ หากคุณมองไปที่ซอร์สโค้ดของฟังก์ชั่นคุณจะไม่เห็นสิ่งใดนอกจาก:raise NotImplementedError, "change_column_null is not implemented"
drusepth

3
ได้ใช้มันใน postgresql รางกำหนดไว้ในฐานข้อมูลที่เฉพาะเจาะจงอะแดปเตอร์ดูpostgres , MySQL สามารถค้นหาคนอื่น ๆ ในapidock ดังนั้นจะต้องตรวจสอบอะแดปเตอร์ฐานข้อมูลเพื่อรับการสนับสนุนในกรณีที่ทุกคนได้รับNotImplementedError
deepak

1
Upvote! นี่คือลิงค์ไปยังคู่มือ Rails เช่นกัน
mcKain

1
นี่ควรเป็นคำตอบที่เลือก
nahtnam
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.