> For the complete documentation index, see [llms.txt](https://vitrina-blogerov.gitbook.io/bloggers-showcase/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vitrina-blogerov.gitbook.io/bloggers-showcase/upravlenie-bazoi.md).

# Управление базой

## Утилиты. Управление базой

Для управления данными платформы используется общая утилита контента:

```bash
sudo /opt/bloggers_platform/content.sh
```

Она устанавливается вместе с платформой и работает только с теми языковыми версиями, которые реально установлены на сервере.

{% hint style="info" %}
Утилита не переводит тексты. Если перенести контент из русской версии в английскую, тексты будут скопированы как есть. Перевод нужно делать вручную.
{% endhint %}

### Для чего нужна утилита

Утилита закрывает операции, которые опасно выполнять вручную:

* создать резервную копию базы;
* восстановить базу из резервной копии;
* перенести контент из одной языковой версии в другую;
* сделать временную точку отката перед опасным действием.

### Виды резервных копий

{% tabs %}
{% tab title="Ручные" %}
Ручные копии создаются пользователем через меню. Они считаются постоянными и не перезаписываются автоматически.

Папка:

```
/opt/bloggers_platform/backups/manual
```

{% endtab %}

{% tab title="Временные" %}
Временные копии создаются перед восстановлением или импортом. Они нужны как быстрый откат, если операция пошла не так.

Папка:

```
/opt/bloggers_platform/backups/temp
```

{% endtab %}

{% tab title="Экспортные" %}
Экспортные пакеты используются для переноса контента между языковыми версиями.

Папка:

```
/opt/bloggers_platform/backups/exports
```

{% endtab %}
{% endtabs %}

### Ручная резервная копия

В меню нужно выбрать:

```
Create manual backup
```

Затем выбрать языковую версию. Утилита создаст `.dump`-файл базы данных выбранной версии.

### Восстановление из резервной копии

В меню нужно выбрать:

```
Restore from backup
```

Затем выбрать целевую языковую версию и файл резервной копии.

Перед восстановлением утилита просит подтверждение:

```
RESTORE
```

{% hint style="warning" %}
Восстановление заменяет всю базу выбранной версии: контент, настройки, администраторов, пользователей бота и секреты, которые были в выбранном бэкапе.
{% endhint %}

### Перенос контента между версиями

В меню нужно выбрать:

```
Export/import content between versions
```

Затем выбрать исходную и целевую языковую версию.

Перед импортом утилита просит подтверждение:

```
IMPORT
```

При переносе целевые таблицы контента заменяются данными из исходной версии. Связанные файлы из `assets` копируются, если они упомянуты в контенте.

### Что переносится

Переносятся данные витрины и безопасные контентные настройки:

* карточки блогеров;
* социальные сети и цены;
* категории;
* теги;
* связи блогеров с тегами;
* безопасные настройки внешнего вида и текста;
* настройки сообщений бота, которые относятся к контенту.

### Что не переносится

{% hint style="success" %}
Секреты и пользовательские данные не импортируются при переносе контента. Это позволяет языковым версиям оставаться независимыми.
{% endhint %}

Не переносятся:

* администраторы;
* пользователи Telegram-бота;
* Telegram bot token;
* ID канала;
* JWT-настройки;
* ключи AI-провайдеров;
* пароли базы данных;
* секреты приложения.

<details>

<summary>Что происходит с контейнерами во время операции</summary>

Перед восстановлением или импортом backend и bot выбранной версии временно останавливаются. После завершения операции они запускаются снова.

Это нужно, чтобы база не менялась в момент восстановления или переноса.

</details>

### Быстрая резервная копия версии

У каждой языковой версии есть свой менеджер. Например, для русской версии:

```bash
sudo /opt/bloggers_platform/apps/ru/manager.sh backup
```

Он создает копию базы и архив папки `assets` внутри:

```
/opt/bloggers_platform/apps/ru/backups
```

Для регулярной работы с несколькими языками удобнее использовать общую команду `content.sh`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://vitrina-blogerov.gitbook.io/bloggers-showcase/upravlenie-bazoi.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
