Контроль версий базы данных в 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: если вы дочитали до саааааамого низа, значит Вам действительно не терпится попробовать ))) тогда тыч смелее на эту ссылочку!.
Поблагодарить автора
Отправить деньги
Комментарии: 2
Нужно пощупать, но идея мне нравится.
Спасибо.
Спасибо.
Пожалуйста, пробуйте, внес правки, теперь все безопасно даже при вводе не верных путей.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.