Initial commit

This commit is contained in:
2026-04-01 11:50:03 +03:00
commit 58a3251b8a
5 changed files with 283 additions and 0 deletions

38
CLAUDE.md Normal file
View File

@@ -0,0 +1,38 @@
# mongo-index-helper
Два bash-скрипта для экспорта и импорта схемы индексов MongoDB. Предназначены для запуска внутри контейнера mongo.
## Скрипты
- `export-indexes.sh` — экспортирует индексы всех коллекций указанной БД в JSON-файл
- `import-indexes.sh` — импортирует индексы из JSON-файла в указанную БД
## Технические детали
- Требуют `mongosh` (доступен в официальном образе mongo 5+)
- Встроенный JavaScript передаётся через временный `.js`-файл в `/tmp`, который удаляется после выполнения
- Переменные среды `MONGO_DB`, `DRY_RUN`, `INDEXES_JSON` используются для передачи параметров в JS-код внутри mongosh
- Индекс `_id_` пропускается при экспорте и импорте
- Поля `v` и `ns` удаляются из экспортируемых индексов (служебные, не нужны при создании)
## Формат JSON
```json
{
"collectionName": [
{
"key": { "field": 1 },
"name": "index_name",
"unique": true
}
]
}
```
Имя БД в файл не сохраняется — передаётся параметром `--db` при каждом запуске.
## Поведение импорта
- Если коллекция не существует — создаётся автоматически
- Если в коллекции уже есть индексы (кроме `_id_`) — они дропаются перед созданием новых
- `--dry-run` показывает все планируемые действия без их выполнения