Вот как я обычно работаю.
- У меня есть локальная база данных разработчиков.создавать и обновлять мои проектные документы (содержащие представления).
- иметь базу данных производственного развертывания, которая будет видна всем клиентам.Я обычно использую iriscouch.Не храните данные в этой базе данных.
- При настройке клиента убедитесь, что вы настроили одностороннюю репликацию с # 2 на эту базу данных клиента.
Таким образом, чтобы развернуть на всех клиентах,Я поставил свои последние документы по дизайну на мастер, тогда все клиенты будут обновлены.Есть некоторые оговорки к этому.При развертывании на главной базе данных вы должны убедиться, что вы уважаете ревизии, чтобы клиентские базы данных знали, что нужно обновить.
Вот цитата мастера, Джейсона Смита:
Хороший путь: работа с _rev
Я думаю, что ваше приложение имеет концепцию «обновления»от одной ревизии к другой.Существует промежуточный код или код разработки, и есть производственный код.Периодически вы продвигаете разработку кода в производство.Это звучит как две ветви Git, а также как два документа.(Или два набора идентификаторов документов.)
Вы можете тестировать и реорганизовывать свой код весь день, во временном документе (_design / dev).Но в производстве (_design / pro) это похоже на длинную историю Git.Каждая ревизия строится от предыдущей до начала времен.
Если вы хотите продвигать _design / dev, самое последнее развертывание - _rev = 4-abcdef.Так что это будет пятая версия развернута, верно?Привет!Хватит читать поле "_rev"!Но да, вероятно.
COPY / db / _design / dev Место назначения: _design / pro? Rev = 4-abcdef
{"id": "_ design / pro", "rev":"5-12345wh независимо"}
Обратите внимание, что каждый развернутый _design / pro собирается из другого, поэтому он естественным образом выплывает к рабам при репликации.
В реальной жизни вы можетенеобходимо добавить промежуточный этап, передающий проектные документы на рабочие серверы перед их фактической публикацией.После того, как вы нажмете, сколько времени займет диван, чтобы построить новые взгляды?Ответ: «Христос, кто знает?»
Поэтому вы должны скопировать _design / dev в _design / staging, а затем вытолкнуть это в дикую природу.Затем вы должны запрашивать его представления, пока не убедитесь, что они свежие и быстрые.(Вы можете сравнить «update_seq» из / db с «update_seq» из / db / _design / ddoc / _info).И только тогда вы копируете HTTP из _design / staging в _design / pro и позволяете этому распространяться.
Source
Это не так запутанно, как можетзвук.Но чтобы упростить процесс, вы можете использовать Reupholster (я признаю, я написал этот инструмент).Это в основном для couchapps, но даже если вы просто рекламируете дизайнерские документы, возможно, вам стоит просто использовать reupholster для развертывания на вашей главной базе данных.Reupholster добавляет некоторые полезные данные в дизайн документа, такие как дата / время SVN или Git информация.Таким образом, когда вы смотрите на базу данных клиентов, вы можете сказать, на каком проектном документе они находятся.
Удачи