посоветуйте скрипт создания миграций

asker23

Новичок
Привет

Столкнулся с проблемой изменения структуры из dev бд => на prod (рабочем сервере), объемы большие, ручками делать не удобно. Какие скрипты миграций вы используете для этих целей ?
 

iceman

говнокодер
когда разрабатываем на тех версии, пишем сразу скрипты (alter table, etc) и записываем в блокнот, когда все сделали, исполняем этот скрипт sql, потом накатываем сами приложения. и это взяли в привычку ))

вроде как ERWIN отслеживает извинения, но с ним капаться времени нету, да и доверия, вдруг касячнет...
 

MiksIr

miksir@home:~$
Скрипты миграций обычно завият от СУБД... как ни странно. Ну или да, ручками файлы версий делать, во многих системах интеграции... да и во фреймворках даже есть встроенные средства работы с такими файликами.
 

DiMA

php.spb.ru
Команда форума
делать это руками? о, ужас...

заводим в файлике полную структуру БД (обычные CREATE ... запросы)
потом вносим туда изменения
запускаем на проде скрипт, который берет этот файл, сравнивает с реальной структурой и автоматически накатывает ALTERы
 

MiksIr

miksir@home:~$
А если требуется миграция данных, обработка, измение формата, заполнение дефолтных значений и еще куча всего?
 

DiMA

php.spb.ru
Команда форума
Причем тут миграция данных и т.д.? Ты хочешь меня уесть? :) Я только про структуру написал, это же очевидно. Вопросы рутинных ежедневных изменений бд решаются так, а не руками, вперемешку с возможными ошибками. Возможно, кто-то РЕАЛЬНО юзает у себя и более прогрессивные элементарные методы (без теоретических вопросов - дайте ка мне чудо софт для миграции) - пусть тогда расскажет. От патча разовыми скриптами данных это никак не избавляет, что бывает нужно крайне редко (у нас).
 

MiksIr

miksir@home:~$
Ну структура, бывает, цепляет за собой работу с данными, когда нужно свежие поля или таблицы сразу и наполнить.
Но вообще хороший скрипт сравнения схем, конечно, удобен. Но для маленьких проектов пойдет и руками. Тем паче у ручного есть один хороший плюс - сразу видно в комите кто и зачем это добавил ;) Т.е. кому крутить я уши за дроп поля.
 

DiMA

php.spb.ru
Команда форума
Так тот файл со структурой так же в svn, поэтому все видно, кто и когда менял базу. Плюс гарантия, что в обход файла никто точно ничего не делал.
 

iceman

говнокодер
DiMA
нет не пишем руками, в pl/sql девелопере, когда визуально меняешь таблицу, он генерирует скрипты наката этих изменений (альтеры и т.д.). в ручную только записываем в блокнот эти изменения и исполняем.
 

shelestov

я тут часто
когда разрабатываем на тех версии, пишем сразу скрипты (alter table, etc) и записываем в блокнот, когда все сделали, исполняем этот скрипт sql, потом накатываем сами приложения. и это взяли в привычку ))
вроде как ERWIN отслеживает извинения, но с ним капаться времени нету, да и доверия, вдруг касячнет...
Использую такой же вариант.
Кстати есть решения позволяющие сравнивать базы и обновлять их структуру.
По моему у EMS что то было, вроди EMS DB Comparer for MySQL называется, но сам не юзал.
 

MiksIr

miksir@home:~$
Так тот файл со структурой так же в svn, поэтому все видно, кто и когда менял базу. Плюс гарантия, что в обход файла никто точно ничего не делал.
Т.е. разработчик руками все же вносит изменения в файл, просто пишет не альтеры, а добавляет поля в create table?
 
Сверху