# Каталог данных задаётся одним ключом `[storage] data_dir` - **Дата:** 2026-08-12 - **Источник:** [../../openspec/changes/archive/2026-08-12-pocketbase-storage/design.md](../../openspec/changes/archive/2026-08-12-pocketbase-storage/design.md), раздел «Ключи конфигурации: два пути заменяются одним каталогом» ## Решение Ключи `[database] path` и `[storage] path` уходят. Вместо них — один `[storage] data_dir` со значением `data`: база и файлы записей лежат под одним каталогом, и по-другому хранилище не умеет. Выбор сделан человеком 2026-08-12 из трёх названных вариантов. ## Почему Имя ключа конфигурации проект объявил необратимым ([../../CLAUDE.md](../../CLAUDE.md), «Работа»): переименование правится не в одном файле, а в конфигурации на сервере и в выкладке, и молча ломает запуск. Поэтому выбор ушёл человеку, а не был принят по ходу. Цитата источника о цене каждого варианта: > - `[storage] data_dir` — **выбрано**. Ключ назван по назначению, как названы и > сегодняшние; смена библиотеки через год имени не тронет. Слово `storage` при > этом уже занято capability, но в конфигурации оно значит ровно то же — где > лежат данные; > - `[pocketbase] data_dir` — прямее всего читается тем, кто знает библиотеку, и > вписывает имя поставщика в необратимый ключ. Смена библиотеки потребует > второго необратимого переименования; > - `[data] dir` — короче и нейтральнее всех, но `data` в проекте уже значит > каталог на диске, и секция с таким именем читается как «настройки каталога», > а не «настройки хранилища». Запись попадает в журнал по **дорогому откату**: переименование ключа стоит правки конфигурации на сервере и в выкладке, а ошибка проявляется отказом старта. ## Последствия - `+` имя ключа не называет поставщика, и смена библиотеки хранилища второго необратимого переименования не потребует. - `+` каталог данных один, и запрет «боевой каталог не трогать» покрывает и базу, и записи одной строкой. - `−` слово `storage` в проекте теперь значит три вещи: capability, само хранилище и секцию конфигурации. Поле записи о файле от этого переименовано в `location` — чтобы смыслов было три, а не четыре. - `−` прежние конфигурации несовместимы: сервис на старом `config.toml` поднимется на умолчании `data`, а не на прежних путях. Данные при этом не переносятся по решению задачи, так что цена нулевая ровно сейчас и была бы не нулевой при переносе.