yii2-db-manager icon indicating copy to clipboard operation
yii2-db-manager copied to clipboard

Бекап избранных таблиц

Open loveorigami opened this issue 8 years ago • 4 comments

Можно ли реализовать такую возможность? Запомнить это, как пресет. Аналогия из SypexDumper

loveorigami avatar Dec 11 '16 17:12 loveorigami

Думаю в этом расширении не получится такое реализовать.

Beaten-Sect0r avatar Jun 24 '17 10:06 Beaten-Sect0r

Почему? В mysqldump есть же опция --ignore-table=db_name.tbl_name

Позволяет игнорировать таблицу tbl_name базы данных db_name при создании дампа. Если из дампа необходимо исключить несколько таблиц, необходимо использовать несколько параметров "--ignore-table", указывая по одной таблице в каждом из параметров.

и --tables

Перекрывает действия параметра --databases (-B). Все аргументы, следующие за этим параметром, трактуются как имена таблиц.

http://adw0rd.com/2009/6/7/mysqldump-and-cheat-sheet/


Такие опции очень нужны.

  1. Мне не нужно бекапить таблицу logs или sessions. Также не нужно бекапить большую таблицу (~ 1 млн записей), которая меняется редко.

  2. Большую таблицу я хочу забекапить отдельно - раз в неделю. Или же несколько таблиц для экспорта по фтп на другой сервер #7

loveorigami avatar Jun 27 '17 11:06 loveorigami

Имеется в виду что gui дерева таблиц с чек боксами напротив не будет. Попробую реализовать когда буду у рабочего компьютера. Опишите подробней как это должно выглядеть.

Beaten-Sect0r avatar Jun 27 '17 18:06 Beaten-Sect0r

Как это работает у меня на примере SypexDumper.

  • В нем есть возможность создавать jobs
  • У меня четыре таких настройки
    1. Делает dump всего, кроме трех таблиц (2 служебные, и одна большая). Тут полезна опция "--ignore-table"
    1. Делаю dump большой таблицы - раз в неделю. Тут больше подходит опция --tables
    1. Делаю dump общих таблиц (цены, скидки)... Отправляю этот dump по фтп и там делаю по крону импорт
    1. Раз в месяц делаю dump всех таблиц

Думаю. что в конфиге вместо

             'customDumpOptions' => [
                 'mysqlForce' => '--force',
                 'somepreset' => '--triggers --single-transaction',
                 'pgCompress' => '-Z2 -Fc',
             ],

логичнее добавить что-то вроде

'jobs' => [
            'daily' => [
                'mysqlForce' => '--force',
                'somepreset' => '--triggers --single-transaction',
                'pgCompress' => '-Z2 -Fc',
                'ignoreTables' => ['{%session}', '{%contacts}']
            ],
            'weekly-contacts' => [
                'mysqlForce' => '--force',
                'somepreset' => '--triggers --single-transaction',
                'pgCompress' => '-Z2 -Fc',
                'includeTables' => ['{%contacts}']
                'path' => '@app/backups/weekly',
            ],
            'export' => [
                'mysqlForce' => '--force',
                'somepreset' => '--triggers --single-transaction',
                'pgCompress' => '-Z2 -Fc',
                'includeTables' => ['{%akcii}', '{%prices}']
                'path' => '@app/backups/export',
            ],
]

и соответственно, тут https://github.com/Beaten-Sect0r/yii2-db-manager/blob/master/src/commands/DumpController.php#L27

учесть название job-a, чтоб можно его было передать по крону.

loveorigami avatar Jun 28 '17 06:06 loveorigami