Связаться
Изображение
Миша Радионов

Доклад про BDSM на PHP Ural Meetup

Опубликовано: 23 Дек 2019
Вернуться в блог

— Всем привет, меня зовут Миша, я знакомлюсь с девушками на GitHub’е.

Так я представился (давно хотел) на небольшой конференции PHP Ural Meetup, посвященной, как легко можно догадаться, программированию на языке PHP. Кстати, хочу поблагодарить наших коллег из ЭБК и, в частности Юрия Коптева, за то, что придумали и организовали это мероприятие. Это ведь, на секундочку, первый известный мне митап для PHP-программистов.

В первый раз мы с коллегами из Флага сходили как зрители, во второй раз я предложил доклад. Доклад был о нашем внутреннем инструменте для работы с базами данных под смелым названием BDSM. Вообще говоря, это просто небольшой, но очень полезный Bash-скрипт.

Доклад был интересен тем, что я не только рассказал, но и показал скрипт в действии, ведь программисты всегда любят посмотреть на что-то на практике, а не в сухой теории.

Так как презентации я не делал, а на Github проект описан только на английском, то давайте я в общих чертах перескажу суть своего доклада.

Изначальная проблема — WordPress

Долгие годы мы работали в основном с WordPress CMS. Особенность этой CMS — необходимость делать поиск с заменой домена в базе данных при переносе между площадками. В какой-то момент я устал делать это руками в текстовом файле и написал Bash-скрипт, который читал конфигурационный файл wp-config.php, забирал оттуда реквизиты доступа к БД, выкачивал дамп БД, делал поиск с заменой в дампе и закачивал дамп обратно в базу данных. Тогда скрипт назывался wp_rehost, вот он.

Затем, когда мы стали работать с Laravel, пришлось поработать над неймингом. Bash Database SQL Manager мне понравился больше всего, сокращенно BDSM. Я даже нанимал дизайнера рисовать логотип. Правда, дизайнер отказалась браться за такое, и я нарисовал лого сам 😀.

Фичи BDSM

Затем, понемногу скрипт оброс дополнительными возможностями. Я перечислю здесь все, включая упомянутые выше.

Базовый набор фичей

  1. Автоматическое определения движка: WordPress, Laravel, Prestashop
  2. Парсинг конфига движка, получение реквизитов доступа к базе данных
  3. Экспорт дампа (файл выгрузки) из базы данных
  4. Поиск с заменой в дампе
  5. Импорт дампа обратно в базу

Дополнительные фичи

    1. Установщик, который я вынес в отдельный проект gg_installer (gg — сокращение от GoGit). Как результат, скрипт устанавливается одной простой командой.
    2. Добавлено интерактивное многоуровневое меню.

  1. Проект, документация к нему и даже коменты в коде переведены на английский язык.
  2. Важный пункт. Реализованы два дополнительных режима работы (итого их три):
    1. Локальный режим (Local mode). Подходит для классической установки СУБД на локальной машине
    2. Удаленный режим (Remote mode). Нужен для выкачивания базы с удаленного сервера.
    3. Docker-режим (Docker mode). Подходит, когда СУБД запущена в Docker-контейнере. Обратите внимание, что Local или Docker режимы определяются скриптом автоматически.
  3. Добавлена поддержка PostgreSQL. Сейчас поддерживаются две СУБД: MySQL и PostgreSQL.
  4. Добавлена установка других моих скриптов:
    1. HelloBash — генератор приветствия (prompt) в консоли.
    2. Отдельные наборы алиасов, для работы с Git, Laravel, Docker, Jira и другие.
  5. Самообновление скрипта BDSM
  6. Возможность создавать набор бэкапов в отдельной директории
  7. Автоматический режим. Возможность добавить скрипт в Cron (планировщик) для использования BDSM в качестве простого средства для бэкапа базы данных
  8. Некоторые средства для удобства разработки
    1. Nightly builds — возможность установить нестабильную версию скрипта. Соответственно, непроверенные изменения не выкатываются на стабильную версию
    2. Changelog — понятная история изменений
  9. Режим вечеринки

Если у вас остались какие-то вопросы про то, что такое BDSM, пишите в комментариях, я на них довольно быстро отвечаю. Успехов в работе вам!

И вот еще несколько фоток.







Больше фоток в альбоме на vk.com