SQL only бекап засобами PostgreSQL

Є випадки, коли стандартні механізми бекапу в Odoo не працюють. Наприклад, при великому розмірі аттачментів (більше за розмір оперативної пам'яті) або навіть при великому розмірі самої бази. Також є випадки, коли аттачмети не потрібні, наприклад, для локального дебагу. Розглянемо спосіб створення і розгортання бекапу без аттачментів засобами PosgreSQL, який має певну специфіку.

1. Робимо Plain dump

sudo -u postgres pg_dump -Fp your_database | gzip > /tmp/your_database_dump.gz

2. Видаляємо локально свою базу і створюємо таку ж порожню. Але користувач для БД повинен бути такий же як і у забекапленої (у прикладі odoo)

sudo -u postgres psql
DROP DATABASE "your_database";
CREATE DATABASE "your_database"
  WITH OWNER = odoo
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'en_US.UTF-8'
       LC_CTYPE = 'en_US.UTF-8'
       CONNECTION LIMIT = -1;

3. копіюємо собі на комп'ютер файл your_database_dump.gz і розпаковуємо його.

gunzip your_database_dump.gz

4. Після підчищаємо від артефактів Postgres 10 (зокрема від "AS integer")

cat your_database_dump | sed '/AS integer/d' > your_database_dump_better.sql

5. І потім очищений файл заливаємо під користувачем odoo. Це тому, що з рестора викликається роль як у забекапленої БД:

sudo -u postgres psql -U odoo -W your_database -h 127.0.0.1 < your_database_dump_better.sql

Якщо версія Postgres новіша та/або весія локальна співпадає з серверною, можна скоротити пункти 3-5, замініивши їх однією командою

gunzip -c your_database_dump.gz | psql -U odoo -W -h 127.0.0.1 -d your_database

6. Перепризначаємо права на базу локальному користувачеві

sudo -u postgres psql
REASSIGN OWNED BY odoo TO odoo_your_project;
\c your_database;
REASSIGN OWNED BY odoo TO odoo_your_project;

Можна також локально дати всім користувачам пароль admin

UPDATE res_users SET password = '$pbkdf2-sha512$25000$kDKmtFYKAQCglHIuhRACoA$IcsiACdtip/1WdNwjOsJn0pdfPAY0DrpYx25Vk6w1F5jThGaXrF7Af7PrwzELFTFV5aikU4Y8yqx2kvp1.ThZw';

7. Проганяємо апдейти (і не забути в директорію з проектом підтягнути залежні репозиторії)

odoo-helper addons update base

8. Готово!



SQL only бекап засобами PostgreSQL
KitWorks, Volodymyr Karabanov 30 квітня 2022 р.
Поділитися цією публікацією
Теги
Архів
Нумерація залежна від параметру