ТУТА ЕЩЕ ЧЕНИТЬ ВЛЕПИМ.
Реклама
1.4

Перенос сайта на Drupal 7 с MySQL на PostgreSQL.

0
SUCCESS: Your vote is considered!

Так уж повелось с давних времен, что наш сайт работал с использованием MySQL. И всебы ничего, но с переходом с версии 5.1 на 5.5 MySQL начал потреблять очень много памяти. Ковыряние конфига и смена MySQL на MariaDB не сильно решили проблему. Решено было переходить на PostgreSQL (да я знаю о фичастости этого сервера, но на сайте с не очень большой посещаемостью решающим стало именно потребление памяти).

Итак, устанавливаем нужные пакеты, создаем юзера и базу данных, все это 100500 раз описано в интернетах, а вот собственно сам процесс переноса базы думаю вызывает интерес у многих. В интернете можно найти совет создать дамп базы с поддержкой PostgreSQL передав приложению mysqldump параметр compatible=postgresql. Этот способ не работает, ну по крайней мере не заработал у меня. А получилось перенести базу с помощью скрипта py-mysql2pgsql. Установить его можно с помощью pip :

#pip install py-mysql2pgsql

Потребуется установить dev пакеты для PostgreSQL, MySQL и Python.

Далее нужно создать конфиг с таким содержимым:

## В разделе mysql думаю все понятно
mysql:
 hostname: localhost
 port: 3306
 socket: /var/run/mysqld/mysql.sock
 username: dbase_user
 password: dbase_password
 database: dbase_name
 compress: false
destination:
 file: ## Здесь можно указать итоговый файл с дампом базы
 postgres: ## Или указать параметры подключения к серверу PostgreSQL для прямого импорта
  hostname: localhost
  port: 5432
  username: dbase_user
  password: dbase_password
  database: dbase_name

## Тут можно указать какие таблицы конвертировать (по умолчанию - все)
#only_tables:
#- table1
#- table2
## Здесь можно исключить таблицы
#exclude_tables:
#- table3
#- table4

## Если true, то будет использоваться только структура базы
supress_data: false

## Если true, то будут использоваться только данные базы
supress_ddl: false

## Не совсем понял зачем это нужно :)
force_truncate: false

## Если true, конвертит MySQL дату в UTC+tzinfo
timezone: false

Затем запускаем скрипт

py-mysql2pgsql -v -f config_file

После экспорта базы нужно изменить драйвер в конфиге друпала с mysql на pgsql, затем запустить скрипт update.php, пройти процедуру обновления и все, сайт начнет работать уже с сервером PostgreSQL.

 

 


Пожалуйста войдите, что-бы оставить коментарий.
Нет акаунта? Регистрация