Spec-Zone.ru › CouchDB 3.5

/{db}/_compact

POST /{db}/_compact

Запросить уплотнение указанной базы данных. Уплотнение сжимает файл базы данных на диске, выполняя следующие операции:

  • Создаёт новую, оптимизированную версию файла базы данных, удаляя из новой версии все неиспользуемые разделы во время записи. Для этого временно создаётся новый файл, поэтому для завершения процедуры уплотнения может потребоваться вдвое больше места, чем в настоящее время занимает указанная база данных.

  • Удаляет из базы данных тела всех нелистовых ревизий документов.

  • Удаляет старую историю ревизий, выходящую за пределы, заданные параметром базы данных _revs_limit.

Запросить уплотнение можно только для отдельной базы данных; уплотнить все базы данных экземпляра CouchDB нельзя. Процесс уплотнения выполняется в фоновом режиме.

Определить, выполняется ли процесс уплотнения базы данных, можно, получив метаинформацию базы данных: значение compact_running в возвращаемой структуре базы данных будет установлено в true. См. GET /{db}.

Также можно получить список выполняющихся процессов, чтобы определить, выполняется ли в данный момент уплотнение. См. /_active_tasks.

Параметры:
  • db – Имя базы данных

Заголовки запроса:
  • Accept –

    • application/json

    • text/plain

  • Content-Type – application/json

Заголовки ответа:
  • Content-Type –

    • application/json

    • text/plain; charset=utf-8

Объект JSON ответа:
  • ok (boolean) – Статус операции

Коды состояния:
  • 202 Accepted – Запрос на уплотнение принят

  • 400 Bad Request – Недопустимое имя базы данных

  • 401 Unauthorized – Требуются права администратора сервера CouchDB

  • 403 Forbidden – Недостаточно прав / Слишком много запросов с недействительными учётными данными

  • 415 Unsupported Media Type – Недопустимое значение Content-Type

Запрос:

POST /db/_compact HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: localhost:5984

Ответ:

HTTP/1.1 202 Accepted
Cache-Control: must-revalidate
Content-Length: 12
Content-Type: application/json
Date: Mon, 12 Aug 2013 09:27:43 GMT
Server: CouchDB (Erlang/OTP)

{
    "ok": true
}

/{db}/_compact/{ddoc}

POST /{db}/_compact/{ddoc}

Уплотняет индексы представлений, связанные с указанным документом дизайна. Уплотнение большого представления может освободить больше места, чем уплотнение самой базы данных. Поэтому, если вы знаете, что недавнее изменение базы данных затронуло определённый набор индексов представлений, можно использовать этот метод вместо полного уплотнения базы данных. Подробнее см. в разделе Ручное уплотнение представлений.

Параметры:
  • db – Имя базы данных

  • ddoc – Имя документа дизайна

Заголовки запроса:
  • Accept –

    • application/json

    • text/plain

  • Content-Type – application/json

Заголовки ответа:
  • Content-Type –

    • application/json

    • text/plain; charset=utf-8

Объект JSON ответа:
  • ok (boolean) – Статус операции

Коды состояния:
  • 202 Принято – Запрос на уплотнение принят

  • 400 Неверный запрос – Недопустимое имя базы данных

  • 401 Не авторизован – Требуются права администратора сервера CouchDB

  • 403 Доступ запрещён – Недостаточно прав / Слишком много запросов с недействительными учётными данными

  • 404 Не найдено – Документ дизайна не найден

  • 415 Неподдерживаемый тип данных – Некорректное значение Content-Type

Запрос:

POST /db/_compact/ddoc HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: localhost:5984

Ответ:

HTTP/1.1 202 Accepted
Cache-Control: must-revalidate
Content-Length: 12
Content-Type: application/json
Date: Mon, 12 Aug 2013 09:36:44 GMT
Server: CouchDB (Erlang/OTP)

{
    "ok": true
}

Примечание

Индексы представлений хранятся в отдельном файле .couch, имя которого формируется на основе хеша соответствующих функций документа дизайна. Файл находится во вложенном каталоге рядом с основными файлами базы данных .couch.

/{db}/_ensure_full_commit

POST /{db}/_ensure_full_commit

Изменено в версии 3.0.0: Устарел; конечная точка не выполняет никаких действий.

До версии 3.0 этот метод использовался для фиксации последних изменений в базе данных, если был задан параметр delayed_commits=true. Теперь этот параметр всегда false, поэтому фиксация изменений никогда не откладывается. Однако эта конечная точка сохранена для совместимости со старыми репликаторами.

Параметры:
  • db – Имя базы данных

Заголовки запроса:
  • Accept –

    • application/json

    • text/plain

  • Content-Type – application/json

Заголовки ответа:
  • Content-Type –

    • application/json

    • text/plain; charset=utf-8

Объект JSON ответа:
  • instance_start_time (string) – Всегда "0". (Возвращается для обратной совместимости.)

  • ok (boolean) – Статус операции

Коды состояния:
  • 201 Создано – Фиксация изменений успешно завершена

  • 400 Неверный запрос – Недопустимое имя базы данных

  • 401 Не авторизован – Неавторизованный запрос к защищённому API

  • 403 Доступ запрещён – Недостаточно прав / Слишком много запросов с недействительными учётными данными

  • 415 Неподдерживаемый тип данных – Некорректное значение Content-Type

Запрос:

POST /db/_ensure_full_commit HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: localhost:5984

Ответ:

HTTP/1.1 201 Created
Cache-Control: must-revalidate
Content-Length: 53
Content-Type: application/json
Date: Mon, 12 Aug 2013 10:22:19 GMT
Server: CouchDB (Erlang/OTP)

{
    "instance_start_time": "0",
    "ok": true
}

/{db}/_view_cleanup

POST /{db}/_view_cleanup

Удаляет файлы индексов представлений, которые больше не нужны CouchDB из-за изменений представлений в документах дизайна. Поскольку имя файла представления основано на хеше функций представления, со временем остаются старые представления, занимающие место в хранилище. Этот вызов очищает кэшированные выходные данные представления на диске для указанного представления.

Параметры:
  • db – Имя базы данных

Заголовки запроса:
  • Accept –

    • application/json

    • text/plain

  • Content-Type – application/json

Заголовки ответа:
  • Content-Type –

    • application/json

    • text/plain; charset=utf-8

Объект JSON в ответе:
  • ok (boolean) – Статус операции

Коды состояния:
  • 202 Принято – Запрос на уплотнение принят

  • 400 Неверный запрос – Недопустимое имя базы данных

  • 401 Не авторизован – Требуются права администратора сервера CouchDB

  • 403 Доступ запрещён – Недостаточно прав / Слишком много запросов с недействительными учётными данными

  • 415 Неподдерживаемый тип данных – Недопустимое значение Content-Type

Запрос:

POST /db/_view_cleanup HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: localhost:5984

Ответ:

HTTP/1.1 202 Accepted
Cache-Control: must-revalidate
Content-Length: 12
Content-Type: application/json
Date: Mon, 12 Aug 2013 09:27:43 GMT
Server: CouchDB (Erlang/OTP)

{
    "ok": true
}

Copyright © 2025 The Apache Software Foundation — Licensed under the Apache License 2.0
https://docs.couchdb.org/en/3.5.1/api/database/compact.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API