Сведения о вопросе

FELL

01:11, 5th August, 2020

Теги

MySQL   Git   CVS   Subversion    

Как синхронизировать версию базы данных MySQL и кода веб-приложения при разработке?

Просмотров: 349   Ответов: 5

Исходные данные:
1) веб-приложение на php (ну да это не важно на каком языке), лежащее в git (ну или другой CVS)
2) база данных MySQL
3) Весь SQL-код хранится в БД в виде хранимых процедур.

Как поддерживать синхронизацию кода приложения и структуру БД и хранимые процедуры?
С процедурами дело конечно обстоит проще — можно каждую процедуру положить в отдельный файл, который отслеживается в git (ну или другой CVS)
А вот как быть со структурой таблиц? Генерить ручками при каждом изменении ALTER TABLE и класть их в отдельные файлы — трудоемко.
Может есть какие-то утилиты, которые позволяют делать это автоматически, а-ля Oracle Database Version Control?
Хочется иметь возможность при обновлении версии приложения — выполнить один sql-скрипт, который обновит базу данных. Если конечно такое возможно.



  Сведения об ответе

nYU

01:13, 6th August, 2020

  Сведения об ответе

lats

17:25, 20th August, 2020

Если вы на PHP — попробуйте Doctrine, эта ORM поддерживает очень удобные миграции. Также можно прикрутить какую-то деплой-тулзу типа Capistrano, но смысл сводится всё равно к последовательному применению ALTER-конструкций, хоть и не совсем ручками.


  Сведения об ответе

LIZA

07:58, 23rd August, 2020

Посмотрите вот сюда — habrahabr.ru/qa/1518/


  Сведения об ответе

SEEYOU

15:15, 24th August, 2020

Для БД можно рассмотреть инструменты на www.sqlaccessories.com/ — про цены не могу сказать, насколько дорого или дёшево. Для MS SQL лично использовал в проекте, декларируется также поддержка и других БД, в том числе MySQL. Сгенерированные программой скрипты можно в SVN как обычные текстовые файлы хранить. Собственно можно хранить и бинарные файлы, только просмотр изменений будет недоступен наверное.


  Сведения об ответе

piter

20:00, 9th August, 2020

Вы можете попробовать сделать это с помощью dbForge Schema и Data Compare for MySQL, данные продукты отлично подходят для сравнения и синхронизации схем и таблиц БД.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться