#data-modeling #ravendb
Вопрос:
Есть ли способ включить документ из другого экземпляра базы данных RavenDB для загрузки в наш текущий сеанс хранения?
Вопрос основан на невозможности иметь категоризированные коллекции в RavenDB studio, поэтому раздражает прокручивать и находить нужную коллекцию!
Другими словами, ограниченный контекст в одном и том же хранилище документов выглядит не очень хорошо, поэтому лучшим решением является разделение хранилищ, чтобы сделать его более эффективным и читаемым.
Я знаю, что это не лучшая практика для хранения разных ограниченных контекстов в одном и том же экземпляре БД, но что, если мне это нужно!
Обновить:
Похоже, что функции кросс-базы данных недоступны в RavenDB.
Ответ №1:
Если вам нужно передать информацию / документы между 2 разными базами данных RavenDB, вы всегда можете использовать задачу внешней репликации или задачу RavenDB ETL.
Задача ETL RavenDB:
https://ravendb.net/docs/article-page/5.2/csharp/studio/database/tasks/ongoing-tasks/ravendb-etl-task
Задача внешней репликации:
https://ravendb.net/docs/article-page/5.2/csharp/studio/database/tasks/ongoing-tasks/external-replication-task
С помощью опции ETL task вы можете использовать скрипт для определения и / или фильтрации того, что отправляется в другую базу данных RavenDB. Как только документ попадает в целевую базу данных, вы можете использовать / загружать / включать как обычно.
Комментарии:
1. Это верно, но это приведет к беспорядку в первой базе данных со многими коллекциями из второй. Оно того не стоит. Использование ETL является рекомендуемым методом в микросервисной архитектуре, и это не то, о чем я спрашиваю. Загрязнение, создаваемое коллекциями в RavenDB Studio, является проблемой. Если бы был способ создавать папки и прикреплять к ним коллекции, это могло бы решить проблему загрязнения и включения материалов. Поэтому создание другой базы данных больше не потребуется.