# Перенос базы данных

В этом руководстве описаны шаги по переносу базы данных с помощью Docker и различных команд. Процесс включает в себя создание дампа базы данных, его перенос на удаленный сервер и восстановление в новом контейнере. Если вы изменили значения по умолчанию для DB\_USERNAME и DB\_NAME, обязательно используйте свои собственные значения в командах, приведенных ниже. В противном случае для обоих значений следует использовать значения postgres.

### Шаг 1: Подготовка нового хоста

Перед переносом базы данных на новый хост убедитесь, что Security Center [установлен](https://docs.cybercodereview.ru/security-center/install/installation) и правильно настроен на новом хосте. Выполните следующие шаги, чтобы подготовить новый хост к переносу базы данных:

1. Убедитесь, что конфигурация Security Center правильно настроена на новом хосте, включая параметры подключения к базе данных. Если в процессе настройки были изменены DB\_USERNAME и DB\_NAME, убедитесь, что в конфигурации используются пользовательские значения.
2. Удалите существующую базу данных внутри контейнера с помощью следующей команды:

```
docker exec -i security-center_postgres_1 dropdb -U <DB_USERNAME> <DB_NAME>
```

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

```
docker exec -i security-center_postgres_1 createdb -U <DB_USERNAME> <DB_NAME>
```

### Шаг 2: Создайте дамп базы данных на текущем хосте

1. Откройте терминал или командную строку. Перейдите в каталог, в котором вы хотите создать файл дампа базы данных:

```
cd /path/to/destination_directory
```

2. Выполните следующую команду, чтобы создать дамп базы данных с текущего хоста:

```
docker exec -i security-center_postgres_1 pg_dump -U <DB_USERNAME> <DB_NAME> > pg_dump
```

Файл pg\_dump будет создан в ранее указанном каталоге.

### Шаг 3: Перенесите дамп базы данных на новый хост

Скопируйте файл дампа базы данных (pg\_dump) на новый хост, используя безопасный метод, например SCP (Secure Copy) или любой другой механизм передачи файлов, который вы предпочитаете.

### Шаг 4: Восстановите базу данных на новом хосте

1. После того как файл дампа базы данных окажется на новом хосте, откройте терминал или командную строку на новом хосте. Перейдите в каталог, в котором находится файл дампа базы данных.

```
cd /path/to/source_directory
```

2. Скопируйте файл дампа базы данных в контейнер security-center\_postgres\_1 на новом хосте:

```
docker cp pg_dump security-center_postgres_1:/pg_dump
```

3. Восстановите базу данных из дампа на новом хосте внутри контейнера:

```
docker exec -it security-center_postgres_1 psql -U <DB_USERNAME> -d <DB_NAME> -f /pg_dump
```

Поздравляем! Вы успешно перенесли базу данных.

{% hint style="info" %}
Вы также можете использовать это руководство для восстановления базы данных из резервной копии, пропустив шаги 2 и 3.
{% endhint %}
