Cơ sở dữ liệu MySQL hỗ trợ trang web Django của chúng tôi đã phát triển một số vấn đề về tính toàn vẹn; ví dụ. khóa ngoài tham chiếu đến các hàng không tồn tại. Tôi sẽ không đi vào làm thế nào chúng tôi nhận được vào mớ hỗn độn này, nhưng tôi bây giờ nhìn vào cách sửa chữa nó.Có công cụ nào để kiểm tra tính toàn vẹn của cơ sở dữ liệu ở Django không?
Về cơ bản, Tôi đang tìm tập lệnh quét tất cả các mô hình trong trang web Django và kiểm tra xem tất cả các khóa ngoại và các ràng buộc khác có chính xác không. Hy vọng rằng, số lượng vấn đề sẽ đủ nhỏ để chúng có thể được cố định bằng tay.
Tôi có thể tự viết mã này nhưng tôi hy vọng rằng ai đó ở đây có ý tưởng tốt hơn.
Tôi tìm thấy django-check-constraints nhưng không hoàn toàn phù hợp với hóa đơn: ngay bây giờ, tôi không cần thứ gì đó để ngăn chặn những vấn đề này, nhưng để tìm chúng để chúng có thể được sửa thủ công trước khi thực hiện các bước khác.
trở ngại khác:
- Django 1.1.1 và nâng cấp đã được xác định để phá vỡ mọi thứ
- MySQL 5.0.51 (Debian Lenny), hiện tại với MyISAM bảng
- Python 2.5 , có thể nâng cấp nhưng tôi không muốn ngay bây giờ
(Sau đó, chúng tôi sẽ chuyển đổi thành I nnoDB để hỗ trợ giao dịch thích hợp và có thể là các ràng buộc khóa ngoài ở cấp cơ sở dữ liệu, để ngăn chặn các vấn đề tương tự trong tương lai. Nhưng đó không phải là chủ đề của câu hỏi này.)
Bạn không đề cập đến việc sử dụng PostGreSQL, MySQL là bắt buộc? –
Không bắt buộc, không. Chúng tôi chắc chắn sẽ xem xét PostgreSQL sau, nhưng thay đổi DBMS là một chút quá nguy hiểm vào lúc này. – Thomas