Версионирование БД

Предложения по новым функциям, улучшениям и др.

Версионирование БД

UNREAD_POST Denkart » 16.09.2014 12:22:06

Столкнулся с задачей версионирования БД mysql. Кроме того требуется возможность просмотра изменений.
С просмотром и фиксированием изменений в файлах применяю mercurial, вот решил как то объединить так сказать...

Требуется простой способ получить все таблицы в отдельные файлы с возможностью так же легко их восстановить в БД.
Соответственно возможность получить выборочно нужные таблицы или указать игнорируемые.
Ограничение на количество выгружаемых строк определенных таблиц (иногда не требуется вся БД достаточно минимальный набор инфы для разработки, например пользователей и всю историю заказов тащить не обязательно)

Ваш продукт поддерживает такие функции?
Denkart
 
Сообщения: 6
Зарегистрирован: 16.09.2014 12:07:12

Re: Версионирование БД

UNREAD_POST zapimir » 16.09.2014 13:21:43

Сохранения таблиц в отдельные файлы не предусмотрено. Что касается восстановления, то Pro версия поддерживает выборочное восстановление из дампа, как отдельных таблиц, так и данных. Кроме того данные могут восстанавливаться по разному, т.е. не обязательно удаляются все данные, можно дополнить таблицу (INSERT IGNORE или REPLACE, бывает полезно при восстановлении удаленных записей).
Также дампер умеет восстанавливать данные в немного измененные таблицы (если были добавлены новые поля, либо изменен тип полей).
Что касается минимального набора инфы, то для такого случая лучше создать специальную базу, куда скопировать нужное количество данных и уже её бэкапить, иначе возможны нюансы с целостностью данных.
Вообще в новых версиях планируется поддержка версионирования баз данных, в том числе возможность создания патчей структуры таблиц (а не просто удаление старой таблицы и создание новой).
zapimir
Site Admin
 
Сообщения: 1627
Зарегистрирован: 01.10.2009 22:39:52

Re: Версионирование БД

UNREAD_POST Denkart » 16.09.2014 18:23:04

zapimir писал(а):Сохранения таблиц в отдельные файлы не предусмотрено. Что касается восстановления, то Pro версия поддерживает выборочное восстановление из дампа, как отдельных таблиц, так и данных. Кроме того данные могут восстанавливаться по разному, т.е. не обязательно удаляются все данные, можно дополнить таблицу (INSERT IGNORE или REPLACE, бывает полезно при восстановлении удаленных записей).
Также дампер умеет восстанавливать данные в немного измененные таблицы (если были добавлены новые поля, либо изменен тип полей).
Что касается минимального набора инфы, то для такого случая лучше создать специальную базу, куда скопировать нужное количество данных и уже её бэкапить, иначе возможны нюансы с целостностью данных.
Вообще в новых версиях планируется поддержка версионирования баз данных, в том числе возможность создания патчей структуры таблиц (а не просто удаление старой таблицы и создание новой).


Версионирование, с возможностью просмотра изменений, тема очень не простая и ее реализация не очевидна, если использовать для контроля версии mercurial или git, то не хватает всего лишь инструмента управления таблицами как отдельными файлами.... т.е. немного допилить ваш скрипт.
- Возможность при желании сохранить БД в виде группы дампов таблиц в отдельную директорию с уникальным названием (ветка 1.1 БД)
- Возможность восстановиться из такой директории.(последовательное исполнение дампов таблиц БД)
- Возможность указать для конкретных таблиц ограничение на количество строк данных попадающих в дамп таблицы (на свой страх и риск)

Когда я комментирую (сохраняю) группу файлов в mercurial, называя ее например релиз 1 (ветка 1.1), это неделимая совокупность под названием релиз 1
Если при этом создать дамп таблиц БД в отдельной директории (ветка 1.1 под контролем mercurial) то совершенно спокойно можно будет восстановить проект (файлы и БД)

Может Вам все же добавить такую функцию? Ведь я не один кто париться с этим вопросом и хочет готовое решение, без написания собственных скриптов.
Denkart
 
Сообщения: 6
Зарегистрирован: 16.09.2014 12:07:12

Re: Версионирование БД

UNREAD_POST Denkart » 16.09.2014 18:32:19

--tab=/home/base/path/

Выполняет такой дамп, но на хостинге не хватает прав что бы создавались еще и .txt с данными
Denkart
 
Сообщения: 6
Зарегистрирован: 16.09.2014 12:07:12

Re: Версионирование БД

UNREAD_POST Denkart » 16.09.2014 18:49:59

Ваши 2 лицензии уже купил ))) Хотя и не подойдет мне наверное в таком виде как есть.
Буду благодарен за консультацию относительно моей ситуации......
Как то можно реализовать запросом или несколькими запросами к БД формирование директории с дампами таблиц БД с возможностью их восстановления?
Или направьте куда копнуть.
Denkart
 
Сообщения: 6
Зарегистрирован: 16.09.2014 12:07:12

Re: Версионирование БД

UNREAD_POST zapimir » 16.09.2014 19:15:48

Да можно конечно и в разные файлы сделать, хотя mercurial или git для контроля версий БД наверное не лучший вариант, так как для структуры таблиц лучше хранить ALTER запросы, чтобы с их помощью можно было изменять имеющиеся таблицы. А не удалять таблицы и создавать новые с новой структурой, и заново заливать туда данные.
В принципе в новой версии появится сохранение в отдельные файлы, так как такие запросы раньше поступали. Что касается частичного бэкапа то подумаем в принципе не сложно, главное над интерфейсом подумать как лучше сделать.
zapimir
Site Admin
 
Сообщения: 1627
Зарегистрирован: 01.10.2009 22:39:52

Re: Версионирование БД

UNREAD_POST Denkart » 16.09.2014 20:04:07

zapimir писал(а):Да можно конечно и в разные файлы сделать, хотя mercurial или git для контроля версий БД наверное не лучший вариант, так как для структуры таблиц лучше хранить ALTER запросы, чтобы с их помощью можно было изменять имеющиеся таблицы. А не удалять таблицы и создавать новые с новой структурой, и заново заливать туда данные.
В принципе в новой версии появится сохранение в отдельные файлы, так как такие запросы раньше поступали. Что касается частичного бэкапа то подумаем в принципе не сложно, главное над интерфейсом подумать как лучше сделать.


Понимаю что удалять и создавать таблицу не по фэншую, однако сама простота способа миграции проекта подкупает.

Миграция проекта совместно с БД (версионирование и контроль изменений) sypex Dumper и mercurial

1.) Создаем на сервере при помощи sypex Dumper PuthDump (down dbname) базы данных проекта
1.) Запрашиваем изменения в файлах при помощи mercurial или git
2.) Получив список измененных файлов проекта (в том числе измененных таблиц базы данных) комментируем версию (сохраняем версию) при помощи mercurial или git
3.) Выгружаем версию на сервер в репозиторий
4.) Загружаем обновленную версию файлов из репозитория на любой сервер в том числе рабочий
5.) Разворачиваем дампы измененных таблиц (PuthDump) при помощи sypex Dumper

При таком позиционировании Ваш продукт может стать популярнее )))
Denkart
 
Сообщения: 6
Зарегистрирован: 16.09.2014 12:07:12

Re: Версионирование БД

UNREAD_POST Denkart » 16.09.2014 20:06:37

В принципе в новой версии появится сохранение в отдельные файлы, так как такие запросы раньше поступали.

Осмелюсь спросить:
- Когда планируете новую версию ?
Denkart
 
Сообщения: 6
Зарегистрирован: 16.09.2014 12:07:12

Re: Версионирование БД

UNREAD_POST zapimir » 17.09.2014 16:27:01

Пока еще точной даты нет, ориентировочно в октябре.
zapimir
Site Admin
 
Сообщения: 1627
Зарегистрирован: 01.10.2009 22:39:52

Re: Версионирование БД

UNREAD_POST DanceWoman » 22.09.2014 01:56:58

zapimir писал(а):
Denkart писал(а):артекОсмелюсь спросить: "Когда планируете новую версию?"
Пока еще точной даты нет, ориентировочно в октябре.
А что ещё нового будет? Где можно почитать?
Аватара пользователя
DanceWoman
 
Сообщения: 4
Зарегистрирован: 22.09.2014 01:52:07

Re: Версионирование БД

UNREAD_POST zapimir » 22.09.2014 19:28:23

В релизе будет написано :) Пока из основных нововведений, работа с облачными хранилищами и шифрование.
zapimir
Site Admin
 
Сообщения: 1627
Зарегистрирован: 01.10.2009 22:39:52


Вернуться в Предложения

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Яндекс.Метрика