Периодически любому разработчику чего-либо приходится сталкиваться с такой вещью, как выявление различий между двумя файлами. С этим замечательно справляется такая утилита как diff или её GUI аналоги. Однако бывает так, что из-за спешки, недогляда, недосыпа, и просто лени разработчик вносит изменения в тестовую базу данных и потом не может вспомнить что именно он делал, а совместить с базой данных в продакшене надо. Первое что приходит на ум — сделать дампы обоих БД и сделать по ним diff. Однако если в тестовую БД были внесены новые таблицы, то diff собьется и начнет сравнивать уже разные таблицы. Небольшой гуглинг навел меня на замечательную бесплатную утилиту которая работает с MySQL, PostgreSQL, MSSQL, написана на php и замечательно запускается со встроенного в php сервера. Это Compalex.
git clone https://github.com/dlevsha/compalex.git cd compalex
Далее нужно настроить подключение к тестовой и продакшен базам. Настройка выполняется в файле .environment
[ Main settings ] ; Possible DATABASE_DRIVER: 'mysql', 'pgsql', 'dblib'. ; Please use 'dblib' for Microsoft SQL Server DATABASE_DRIVER = mysql DATABASE_ENCODING = utf8 SAMPLE_DATA_LENGTH = 100 [ Primary connection params ] DATABASE_HOST = localhost DATABASE_NAME = compalex_dev DATABASE_USER = root DATABASE_PASSWORD = DATABASE_DESCRIPTION = Developer database [ Secondary connection params ] DATABASE_HOST_SECONDARY = localhost DATABASE_NAME_SECONDARY = compalex_prod DATABASE_USER_SECONDARY = root DATABASE_PASSWORD_SECONDARY = DATABASE_DESCRIPTION_SECONDARY = Production database
В этом файле
DATABASE_DRIVER — указываем драйвер БД. Возможные значения:
mysql — для базы данных MySQLpgsql -для базы данных PostgreSQLdblib -для базы данных Microsoft SQL ServerСекции [ Primary connection params ] и [ Secondary connection params ] описывают настройки для первой и второй баз данных.
Где:
DATABASE_HOST и DATABASE_HOST_SECONDARY — имя хоста базы данных или его IP адрес для первой и второй базDATABASE_NAME and DATABASE_NAME_SECONDARY — имя первой и второй базы данныхDATABASE_USER / DATABASE_PASSWORD и DATABASE_USER_SECONDARY / DATABASE_PASSWORD_SECONDARY — логи и пароль для доступа к базам данныхDATABASE_DESCRIPTION и DATABASE_DESCRIPTION_SECONDARY — описание сервера (не обязательно). Только для информации. Это описание будет показано как название базы данных.Внутри директории complalex выполняем:
php -S localhost:8000
Теперь можете открыть в вашем браузере адрес http://localhost:8000 и увидеть чем одна база отличается от другой.
Восстановить доступ к странице ВКонтакте можно относительно просто. И для этого даже не потребуется помощь…
Реверс инжиниринг электроники и программного обеспечения — увлекательная и важная дисциплина, играющая ключевую роль в…
Рынок смартфонов не стоит на месте и каждый год пополняется новыми моделями. Компания Apple традиционно…
Запуск онлайн-бизнеса может показаться сложной задачей, но на самом деле этот процесс можно существенно упростить,…
Если Вы хотите продвинуть свой сайт в поисковых системах, одним из самых важных аспектов является…
Корейская компания Samsung зарекомендовала себя на потребительском рынке как производитель флагманов, так и бюджетных смартфонов.…