2011-08-29 3 views
15

Sử dụng South/Django, tôi đang gặp sự cố khi tôi đang cố thêm cột UNIQUENOT NULL cho mô hình có các hàng hiện có trong cơ sở dữ liệu . Phía Nam nhắc tôi chỉ định mặc định cho cột, vì nó là NOT NULL. Nhưng vì nó cũng có ràng buộc UNIQUE, tôi không thể thêm mặc định vào trường trong models.py, cũng như tôi có thể chỉ định giá trị một lần vì nó sẽ giống nhau trên tất cả các hàng. Cách duy nhất tôi có thể nghĩ đến để giải quyết vấn đề này là tạo cột rỗng trước, áp dụng di chuyển, chạy tập lệnh để điền các hàng hiện có với các giá trị duy nhất trong cột đó và sau đó thêm một lần di chuyển khác để thêm UNIQUE ràng buộc với cột đó.Phía Nam: chạy di chuyển cho một cột vừa độc đáo và không rỗng

Nhưng có cách nào tốt hơn để hoàn thành điều tương tự không?

Trả lời

13

Vâng, đây là phương pháp bạn nên thực hiện. Bạn nên làm mưu đồ -> datamigration -> schemamigration cho việc này. Thật không may nếu không có cách nào để làm điều đó trong SQL, phía nam không thể làm điều đó.