Контроль версий базы данных в GIT (бесплатно)
Всем привет, это не совсем дополнение, сколько приятная возможность для тех кто пользуется git-ом (и не только) при создании своих проектов. Все скрипты написаны на BASH и теоретически должны работать практически на любой машине в которой работает данная оболочка. Если же вы не пользуетесь гитом, ничего, Вы можете делать любые бекапы и импорты своего приложения. А теперь вздохни полной грудью и почувствуй свободу в разработке! без цепей зависимости БД )

Сразу оговорюсь, что данное решение находится в стадии разработки и больше подойдет опытным одиночкам, либо тем кто разрабатывает компоненты, ибо в серьезных проектах используются более серьезные програмульки. Поэтому относитесь к текущему проекту больше как к создателю бекапчиков. И если у вас недостаточно скилов или уверенности и понимания в том что Вы делаете, не стоит бросаться в использование компонента, потерпите когда он обрастет правками, а тема коментами.
Давайте же рассмотрим из чего состоит стандартная разработка проекта (большинство случаев):
1. Сервер на котором крутится проект и скорее всего это либо локальная машина, либо хостинг клиента текущего проекта.
2. Локальный компьютер за которым вы работаете и по традиции там же храните файлики и снимки состояний.
3. Продакшен, это то куда сливается итоговый продукт — но он может являтся и 1-м пунктом просто другой папкой.
Для того, чтобы соблюсти контроль версии базы данных используя гит, очевидно нужно получать ее дампы на некоторых этапах и где то их хранить. А при переключении веток учитывать это. Для этого я использовал хуки, которые должны быть установлены на локальном компьютере. А обращение за дампами идет через ssh (либо как то еще — это зависит от ваших возможностей).
Ну а для того чтобы не качать всю базу данных, которая в «расширенном» виде может занимать достаточно места, Вы можете ограничить ее различными критериями указываемыми в файле настроек. Этот же файл используется как на локальном компе так и на сервере где хранится БД. Опять же это может быть один и тот же компьютер, если вы ведете разработку локально.
A вот список того, что можно настраивать в проекте:
Я никогда не писал на BASH большие скрипты и поэтому вероятно наговнокодил, я надеюсь что тут есть грамотные ребята, которые в случае заинтересованности смогут добавить свои правки. Я же буду развивать проект по мере поступающего интереса и выявлении ошибок в работе.
И не стоит сразу вонять что ничего не работает, если вы не смогли разобраться в том как произвести правильную настройку и установку (в особенности если вы работаете на Windows, все же BASH это линуксовая среда).
Инструкция по установке и использованию лежит в README. Я старался сразу писать на английском, но и из-за моего любительского уровня, возможно будет не все понятно, в дальнейшем напишу на русском. Если есть желание внести правки в перевод или код, форкайте на здоровье! И если есть дельные советы — я всегда прислушиваюсь.
P.s.: если проект действительно вам пригодился, вы можете отблагодарить мою работу лайком, звездочкой на гите, либо донатом.
P.p.s: если вы дочитали до саааааамого низа, значит Вам действительно не терпится попробовать ))) тогда тыч смелее на эту ссылочку!.

Давайте же рассмотрим из чего состоит стандартная разработка проекта (большинство случаев):
1. Сервер на котором крутится проект и скорее всего это либо локальная машина, либо хостинг клиента текущего проекта.
2. Локальный компьютер за которым вы работаете и по традиции там же храните файлики и снимки состояний.
3. Продакшен, это то куда сливается итоговый продукт — но он может являтся и 1-м пунктом просто другой папкой.
Для того, чтобы соблюсти контроль версии базы данных используя гит, очевидно нужно получать ее дампы на некоторых этапах и где то их хранить. А при переключении веток учитывать это. Для этого я использовал хуки, которые должны быть установлены на локальном компьютере. А обращение за дампами идет через ssh (либо как то еще — это зависит от ваших возможностей).
Ну а для того чтобы не качать всю базу данных, которая в «расширенном» виде может занимать достаточно места, Вы можете ограничить ее различными критериями указываемыми в файле настроек. Этот же файл используется как на локальном компе так и на сервере где хранится БД. Опять же это может быть один и тот же компьютер, если вы ведете разработку локально.
A вот список того, что можно настраивать в проекте:
- Работа с любой CMS
- Экспорт всей БД
- Исключение не нужных таблиц из экспорта
- Экспорт только определенных таблиц
- Сохранение структуры без вставки данных определенных таблиц
- Экспорт определенных полей указанных таблиц с указанными значения по умолчанию (должно быть прописано в БД)
- Создание отдельных групп правил в одном конфиге, что позволит делать различные бекапы по CRON-у
- Ну и конечно же все использование всего этого одновременно в одном конфиге
Я никогда не писал на BASH большие скрипты и поэтому вероятно наговнокодил, я надеюсь что тут есть грамотные ребята, которые в случае заинтересованности смогут добавить свои правки. Я же буду развивать проект по мере поступающего интереса и выявлении ошибок в работе.
И не стоит сразу вонять что ничего не работает, если вы не смогли разобраться в том как произвести правильную настройку и установку (в особенности если вы работаете на Windows, все же BASH это линуксовая среда).
Инструкция по установке и использованию лежит в README. Я старался сразу писать на английском, но и из-за моего любительского уровня, возможно будет не все понятно, в дальнейшем напишу на русском. Если есть желание внести правки в перевод или код, форкайте на здоровье! И если есть дельные советы — я всегда прислушиваюсь.
P.s.: если проект действительно вам пригодился, вы можете отблагодарить мою работу лайком, звездочкой на гите, либо донатом.
P.p.s: если вы дочитали до саааааамого низа, значит Вам действительно не терпится попробовать ))) тогда тыч смелее на эту ссылочку!.
- ВКонтакте
- Telegram
- Viber
- РЎРєРѕРїРСвЂВВВВВВВВровать ссылку
7
1 757
+10
Поблагодарить автора
Отправить деньги
Комментарии: 2
16 апреля 2019, 22:00
Пожалуйста, пробуйте, внес правки, теперь все безопасно даже при вводе не верных путей.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Сегодня в 11:56
Если речь про админку, то мне вообще непонятно, что ты пытаешься сделать и зачем? В админке есть интерфейс работы с заказами и в этом интерфейсе можно...
Вывод перечня заказанных товаров в таблицу с заказами minishop2 (панель менеджера) 10
Вчера в 21:11
Здравствуйте
Есть желание использовать компонент polylang для автоматизации перевода с наименьшими усилиями, но есть пару вопросов, которые хотелось ...
Polylang 143
Вчера в 16:30
Добрый день.
Удалите плагин vpSystem от пакета.
[VirtualPage] - Виртуальные страницы. 183
Вчера в 08:40
Хочестя в тикеты при сохранении комментария добавить кнопку «проверить на ошибки» и при нажатии на нее проверить комментарий на ошибки в нейросети сох...
pbStudio: Создаём сайт с PageBlocks – настройка и главная страница 6
Вчера в 08:36
Нет, через апи идет запрос в ChatGPT, который формирует необходимые данные о блоке, а дальше PageBlocks их разбирает и создает все нужные элементы.
PageBlocks 2.6.0. Настройка меню MODX и гибкое управление страницей пользователя 12
Вчера в 00:03
Не работает парсинг с vk.com, vkvideo.ru
[videoGallery] 1.4.0 Поддержка VK Video и ещё пара фишек 9
17 апреля 2025, 23:01
Можете тоже подсказать как победить данную ошибку?
msGallerySearch - загрузка изображений в галерею minishop2 по ссылке и Google поиск картинок 44
17 апреля 2025, 17:49
Очевидно ты используешь источник файлов, поэтому в админке путь прописан от источника, хочешь полный путь, откажись от источника файлов.
Не открываются загруженные файлы пишет страница не найдена 2
17 апреля 2025, 15:08
Привет, Henk. Спасибо за ответ! В посте по ссылке меня больше всего заинтересовала фраза «мы интегрировали AI в медиа-менеджер, чтобы значительно упро...
MODX/AI Hackathon Part 2 (27 марта) 4
17 апреля 2025, 13:17
в preg_match проверка проходит, и туда 100% приходит url
Здравствуйте! Первый раз такое вижу, у слеша, не 1 символ в строке, а 9!! Как это делает MODX 2