pip install "psycopg[binary]"
Перенос из MariaDB/MySQL в postgres:
- Средствами jango:
python manage.py dumpdata --natural-primary --natural-foreign --indent 2 > data.json
createdb имя_базы
python manage.py migrate
python manage.py loaddata data.json - Средствами pgloader (https://github.com/dimitri/pgloader.git):
pgloader mysql://user:pass@localhost/old_db postgresql://user:pass@localhost/new_db
Основные параметры (для сервера с 8 ГБ RAM):
- 1.Общие настройки памяти
shared_buffers = 2GB # 25–30% от RAM, место для кеша страниц
work_mem = 64MB # память на сортировки/джойны (на каждую операцию!)
maintenance_work_mem = 512MB # для VACUUM, CREATE INDEX и т.п.
effective_cache_size = 6GB # "предполагаемый" размер дискового кеша ОС - WAL и контроль записи
wal_buffers = 16MB
checkpoint_completion_target = 0.9 - Автовакуум
autovacuum = on
autovacuum_max_workers = 3
autovacuum_naptime = 30s - Коннекты
max_connections = 100 - Дополнительно (для больших выборок)
random_page_cost = 1.1
seq_page_cost = 1.0
Загрузка дампа
PGPATH=/usr/bin/psql
PGDBHOST=localhost
PGDB=db
PGUSER=user
PGPASS=pass
PGPORT=5432
# чтобы пароль не спрашивало — используем PGPASSWORD
export PGPASSWORD=${PGPASS}
MYPG="${PGPATH} -h ${PGDBHOST} -U ${PGUSER} -d ${PGDB} -p ${PGPORT}"
${MYPG} < my.sql
Пример создания суперпользователя
createuser backup_user --pwprompt --superuser -h localhost -p 65432