PostgreSQL — открытая система управления базами данных (СУБД). Она поддерживает как SQL (язык структурированных запросов), так и JSON для неструктурированных запросов, что делает её очень гибкой для разработки различных типов приложений. PostgreSQL известна своей надежностью, масштабируемостью, гибкой архитектурой и поддержкой большого количества данных. Она может обрабатывать задачи от простых веб-приложений до сложных информационных систем и аналитических баз данных. PostgreSQL также поддерживает расширенные функции, такие как транзакции, внешние ключи, подзапросы, триггеры, представления и хранимые процедуры.
Порядок действий для миграции
Требования
- Перед миграцией необходимо установить и обновить модуль Монитор производительности до версии 24.0.0.
- Проект должен использовать кодировку UTF-8 .
- На время миграции необходимо закрыть доступ к сайту для посетителей чтобы избежать внесения изменений в данные в процессе копирования.
- После миграции, тестирования работы и включения PostgreSQL в штатную работу обратный процесс переключения на MySQL (перенос данных из PostgreSQL) возможен только вручную.
- Мигратор создан для продукта, не для сторонних решений. Если на проекте используются модули из маркетплейса, необходимо проверить их на работоспособность с новой СУБД самостоятельно или обратиться к разработчикам модуля.
- Кастомизированный проект может "не завестись" на новой СУБД. Перед миграцией рекомендуется проверить ваши доработки.
Два способа миграции
Существует два способа миграции: вручную (с консоли сервера) и с помощью мастера, встроенного в продукт.
Для обоих способов необходимо учитывать, что не все модули поддерживаются и после миграции какой-то функционал будет отключен. Список отключаемых модулей будет показан на первом шаге мастера конвертации. При использовании второго способа список отключаемых модулей можно посмотреть с командной строки.
Код для получения списка отключаемых модулей
for mysql in `ls bitrix/modules/*/install/mysql/install.sql bitrix/modules/*/install/db/mysql/install.sql`;
do
pgsql=`echo $mysql|sed 's#/mysql/#/pgsql/#'`;
test -e $pgsql || echo $pgsql
done
Порядок действий
- Проверить кастомизированный сайт на совместимость доработок с СУБД PostgreSQL.
- Проверить возможность переноса на тестовой установкеСделать резервную копию проекта
- Развернуть резервную копию на локальной машине
- Обновить локальный сайт до последних обновлений.Выполнить тестовую миграцию удобным вам способом.Проверить работоспособность проекта.
- Приобрести купон перехода на новую версию продукта с использованием СУБД PostgreSQL.
- Обновить проект до последних версий продукта.
- Выполнить миграцию.
- Проверить работоспособность проекта.
Миграция через мастер
Перейдите в административный раздел Рабочий стол > Настройки > Настройки продукта > Список мастеров (/bitrix/admin/wizard_list.php?lang=ru) и запустите мастер Миграция в PostgreSQL (bitrix:perfon.pgsql). Начнётся пошаговый процесс миграции.- На первом шаге проверяются минимально достаточные требования
- Модули, не поддерживающие PostgreSQL, необходимо деинсталлировать на странице Управление модулями (Рабочий стол > Настройки > Настройки продукта > Модули).
- На втором шаге либо выберите уже созданную базу, либо создайте новую базу (с помощью мастера или самостоятельно). Укажите логин и пароль администратора для создания пользователя и базы мастером
- Задайте имя пользователя, пароль и базу данных для миграции.
- В случае возникновения ошибки она будет показана и после её исправления нажмите "Далее".
- Если создание и подключение к базе данных прошли успешно, то добавьте это подключение в файл /bitrix/.settings.php.
- Кликните по ссылке в окне и в новой вкладке откроется файл для редактирования. Должно получиться что-то вроде:
'connections' =>
array (
'value' =>
array (
'default' =>
array (
'className' => '\Bitrix\Main\DB\MysqliConnection',
'host' => 'localhost',
'database' => 'cp',
'login' => 'cp',
'password' => 'cp',
'options' => 2,
'charset' => 'utf8',
'include_after_connected' => '',
),
'default_pgsql' =>
array (
'className' => '\Bitrix\Main\DB\PgsqlConnection',
'host' => 'localhost',
'database' => 'portal',
'login' => 'bitrix',
'password' => 'passwd',
'options' => 2,
'charset' => 'utf-8',
'include_after_connected' => '',
),
),
'readonly' => true,
- На следующем шаге мастера выберите добавленное подключение .
На всё время копирования таблиц из MySQL сайт будет закрыт от посетителей чтобы предотвратить любые изменения в базе данных. В противном случае это может привести к нарушению целостности базы данных.
И начнётся процесс копирования данных- Дождитесь сообщения об окончании копирования. Каких-то временных ориентиров длительности процесса дать невозможно, всё зависит от объёма данных, мощности сервера и настроек БД.
- Отредактируйте .settings.php переименовав подключения в разделе connections:"default" в "default_mysql""default_pgsql" в "default"
Поздравляем! Всё готово!
Примечание Сайт для доступа откроется автоматически после завершения миграции.