2016-08-22 26 views
7

Tôi có một ứng dụng nhắm vào nhiều cơ sở dữ liệu, giống như một ứng dụng xem các ứng dụng tạo báo cáo, thông báo trung gian, chạy tác vụ và các nội dung, theo cách không thể kiểm soát tĩnh (trong tệp cấu hình), vì vậy tôi nghĩ rằng nó có thể được thực hiện bắt đầu một giám sát viên giám sát nhiều Repo s chỉ cần thay đổi các thiết lập của nó trong opts (tôi đã suy nghĩ trong một hồ bơi của repos, một cái gì đó như thế này, âm thanh điên, tôi biết), nhưng nó không thể kể từ Ecto.Repo có macro làm cho kết nối bị ràng buộc với mô-đun của Repo, vì vậy, có cách viết lại Ecto.Repo theo cách mà tôi có thể đạt được nhu cầu của mình? Tôi nhìn vào các nguồn của ecto, nhưng tôi đã không tìm thấy giải pháp nào để đào một mình.Nhiều cơ sở dữ liệu trong Ecto

Tôi cũng nhìn this post, nhưng có một khả năng mà ứng dụng sẽ nhắm mục tiêu nhiều trường hợp, với những người dùng khác nhau, thông tin khác nhau, vv

tôi đã đạt một số giải pháp sử dụng Code.eval cho tạo Repos trên đồng ruộng bay, nhưng tôi không biết làm thế nào "tốt" là nó, và nếu nó được khuyến khích.

Trả lời

0

Trong trường hợp bạn biết tất cả các kho bạn cần phải truy cập vào tôi khuyên bạn nên tách các ứng dụng trong nhiều ứng dụng ô. Mỗi ứng dụng ô có thể kết nối với một kho lưu trữ ecto khác.

Thực hành tốt là tôi luôn trích xuất Ecto và mã liên quan đến cơ sở dữ liệu để phân tách các ứng dụng ô được phân tách bằng tên miền. Bạn có thể xem một ví dụ trong ứng dụng demo này: https://github.com/silviurosu/elixir-umbrella-ddd.

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