Хорошая точка для создания дизайнерских документов в CouchDb
У меня есть экземпляр CouchDb, на котором запущена конфигурация базы данных peruser.
Сгенерирована каждая пользовательская база данных (когда пользователь добавляется в _users
база данных) должны иметь одинаковые проектные документы с логикой представления / списка и т. д.
Как по умолчанию добавить проектные документы в базу данных при ее создании? Просто добавить их после успешного запроса на создание пользователя? Или есть более элегантный способ сделать это в CouchDb?
2 ответа
Не существует механизма инициализации вновь созданных пользовательских баз данных, вы должны включить его в логику создания пользователя. Если вы хотите отделить создание пользователей и инициализацию БД, я предлагаю вам изучить следующую стратегию
1 - Создайте базу данных шаблонов и поместите в нее свои проектные документы, которые должны применяться к каждому пользователю БД
2 - непрерывное прослушивание конечной точки _db_updates, где будут уведомляться события уровня дБ. Эта библиотека может помочь вам.
3 - Когда создается база данных, соответствующая шаблону имени базы данных пользователя, вы можете запустить репликацию из базы данных шаблонов во вновь созданную базу данных, используя конечную точку _replicate.
Если вы планируете использовать модуль Follow npm, как предложил @Juanjo Rodriguez, рассмотрите возможность использования версии Cloudant. Версия Iriscouch (указанная @Juanjo Rodriguez) устарела. Например, он не поддерживает CouchDB v2.x среди других проблем. Я работал с командой Cloudant, чтобы улучшить все это в эти последние дни, и они только что выпустили обновленный пакет npm вчера здесь: https://www.npmjs.com/package/cloudant-follow?activeTab=versions
0.17.0-SNAPSHOT.47
версия включает в себя патчи, над которыми мы работали, поэтому не используйте 0.16.1
(что официально является последним).
Вы можете прочитать больше о проблемах, которые мы исправили здесь:
https://github.com/cloudant-labs/cloudant-follow/issues/54