Một cơ sở dữ liệu có thể được kiểm tra để xem nếu nó không nhất quán?


18

Chúng ta đều biết rằng Drupal không thực sự hỗ trợ khái niệm khóa ngoại trong cơ sở dữ liệu và có khả năng sẽ không bao giờ 1 .

Chúng tôi cũng biết rằng các mô-đun có thể không làm đúng, hoặc người dùng sẽ định kỳ làm những việc điên rồ như

DELETE FROM node_revision
WHERE vid = 123

trong một nỗ lực để "giữ cho cơ sở dữ liệu gọn gàng". Khi điều này xảy ra, hook không chạy và có dữ liệu mồ côi trong cơ sở dữ liệu. Hầu hết, dữ liệu này là vô hại, nhưng đôi khi nó gây ra hành vi thực sự kỳ lạ và có thể đưa ra các lỗi trong mã.

Có bất kỳ phương pháp phù hợp để phát hiện xem bạn có dữ liệu chết và / hoặc không nhất quán trong cơ sở dữ liệu của bạn không?

1 API Schema Drupal 7 hỗ trợ chúng cho tài liệu , nhưng không thực thi.


Tôi giả sử bạn có nghĩa là "bất kỳ phương pháp tốt từ bên trong Drupal"? Hay bạn đang mở một công cụ bên ngoài?
iconoclast

Lý tưởng nhất là trong Drupal, nhưng tôi cởi mở với bất cứ điều gì. Tôi bắt đầu lên kế hoạch cho một công cụ Drupal, nhưng không biết nó sẽ đi được bao xa.
mpdon Arena

Vấn đề có thể được giảm xuống một tập các truy vấn SQL để tìm dữ liệu đó không? Nếu bạn không xây dựng bất kỳ công cụ dễ sử dụng nào với giao diện người dùng Drupal đẹp, nhưng thay vào đó, ngồi tại máy khách MySQL đưa ra các truy vấn theo cách thủ công, làm thế nào bạn tìm thấy sự không nhất quán như vậy?
iconoclast

Các truy vấn không thực sự là vấn đề. Nó là nhiều hơn để biết các bảng để truy vấn và các phím để tham gia vào. Ý tưởng trên giấy của tôi là sử dụng API Schema để lấy tất cả các bảng và sau đó thử tìm hiểu từ mỗi lược đồ xem chúng ta có thể tạo một truy vấn không. Đây có thể là một dự án kỳ nghỉ cho tôi.
mpdon Arena

Btw, trông giống như cuối cùng một số hỗ trợ FK trong D8: drupal.org/node/911352
Nic

Câu trả lời:


2

Khi tôi đang viết một mô tả cho một dự án hộp cát, tôi đã chạy qua một dự án hộp cát để làm điều này:

http://drupal.org/sandbox/anton_krechetov/1345066

Nó hiện chỉ hoạt động cho Drupal 6, và không có bất kỳ cam kết nào kể từ tháng 11 năm 2011, nhưng có vẻ đầy hứa hẹn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.