2010-06-25 43 views
5

Tôi có hai dự án Django khác nhau có nghĩa là chạy song song và làm những việc khá khác nhau.chia sẻ bảng cơ sở dữ liệu giữa hai dự án django

Tuy nhiên họ cần phải chia sẻ một bảng cơ sở dữ liệu chung, bảng khách hàng ..

Cả hai dự án chứa nhiều ứng dụng mà cần phải chứa phím nước ngoài ánh xạ tới rằng mô hình khách hàng ..

Tôi không chắc chắn những gì sẽ là cách tiếp cận tốt nhất ..

Trả lời

4

Thật không may, hỗ trợ của Django cho nhiều cơ sở dữ liệu không không hỗ trợ cross-database relations. Bạn có thể giả mạo điều này trên một trong các hệ thống (ví dụ: có bảng được tham chiếu, nhưng hãy xử lý khóa chính), nhưng bạn cần phải cẩn thận để ghi lại những gì bạn đang làm để đảm bảo duy trì tính toàn vẹn tham chiếu trong ứng dụng là 'giả mạo' nó.

+0

Tôi luôn thích nó khi ai đó đến cùng hơn 4 năm sau khi Giải đáp thắc mắc và xóa bỏ câu trả lời mà không thêm bất cứ điều gì vào cuộc trò chuyện. Lưu ý cho Anonymous Coward: nếu bạn làm theo liên kết trong câu trả lời của tôi, bạn sẽ thấy rằng điều này vẫn đúng trong Django Dev, và họ nói với bạn như vậy một cách rõ ràng. Họ thậm chí còn sử dụng dấu ngoặc kép xung quanh từ 'giả'. –

+3

Tôi đã không downvoted bạn nhưng tôi nghĩ rằng câu hỏi có thể được hiểu là cố gắng để có một cơ sở dữ liệu được chia sẻ trong hai dự án khác nhau. Nó không nhất thiết liên quan đến quan hệ qua cơ sở dữ liệu. Tôi chỉ thích nó khi người khác rants về một cái gì đó không liên quan đến câu hỏi ban đầu. –

5

Giả sử cả hai dự án đang làm việc trên cùng một db, chỉ cần nhập mô hình bạn muốn tham chiếu đến.

from first_project.some_app.models import Client, OtherSharedModel 

class SomeModelInSecondProject(models.Model): 
    client = models.ForeignKey(Client) 
0

Tôi chưa thử nghiệm nó mà là một lựa chọn khác, nếu bạn đang chia sẻ cùng một db và có cả hai dự án trong cùng một máy chủ, chỉ cần hợp nhất chúng vào một dự án, tổ chức ứng dụng của họ trong các thư mục khác nhau và nếu bạn phải bạn có thể sử dụng hai tập tin cài đặt khác nhau. Vui lòng xem câu hỏi này liên quan đến điều đó: How to keep all my django applications in specific folder. Nó chỉ là một cách tiếp cận khác mà không yêu cầu bạn tham khảo một dự án khác (tôi không chắc chắn như thế nào được đề nghị đó là).

Các vấn đề liên quan