Подтвердить что ты не робот

Как переименовать базу данных CouchDB?

Я не вижу API для переименования базы данных CouchDB или вариант в Futon, чтобы сделать то же самое.

Не удалось выполнить повторную копирование в другую базу данных, а затем удалить оригинал, есть ли одноэтапный способ переименования базы данных?

4b9b3361

Ответ 1

Добавление к тому, что сказал Доминик и PPPaul...

Переименование файла - это абсолютно путь (убедитесь, что вы переименовали его как одного и того же пользователя, а не случайно изменили право собственности на root или что-то еще).

Это совершенно безопасно для полноценной рабочей среды, да. Одним из многих преимуществ API HTTP/REST является то, что нет адаптеров с состояниями, связанными с БД. Каждый запрос представляет собой новый запрос. Таким образом, в основном первый запрос к CouchDB после переименования будет завершен, сможет использовать новое имя.

Но подождите, там еще!

Самое смешное, что даже после переименования сервер CouchDB по-прежнему имеет открытый файл-дескриптор самого файла (на который не влияет переименование inode), поэтому до тех пор, пока сервер CouchDB не будет перезагружен, все еще можно получить доступ к БД, используя старое имя.

Update

В комментариях замечание ATfPT, видимо, имя БД должно начинаться с строчной буквы, иначе оно не будет отображаться в Futon.

Update

Еще одна вещь, которую я помнил: чтобы узнать, где находятся файлы DB, запустите это: couch-config --db-dir

Ответ 2

Если у вас есть доступ к самому файлу базы данных (расположенный в /var/lib/couchdb в зависимости от вашей установки), вы можете просто переименовать его.

Насколько мне известно, это будет эффективно "переименовывать" базу данных. Я бы удостоверился, что сервер не работает, когда вы выполняете эту операцию, на всякий случай.

Ответ 3

Я использую couchdb 2, я предполагаю, что предыдущие ответы относятся к более старой версии, потому что файлы базы данных не указаны в папке /var/lib/couchdb, найденной с помощью команды "couch-config -db-dir".

Самый простой способ, которым я следую, - использовать futon и реплицировать db, который вы хотите переименовать, на новое желаемое имя, а затем удалить старую базу данных.

Ответ 4

Предполагая, что вы не хотите повреждать свои базы данных, переименуйте файлы .couch, когда CouchDB не запущен.