Как вы можете получить SQL-скрипт изменений от Rails миграций (для MySQL)? - PullRequest
0 голосов
/ 15 сентября 2010

Я видел http://github.com/muness/migration_sql_generator,, но он не работает должным образом с MySQL для некоторых важных операций. Есть ли другой способ, которым мы можем захватить sql, сгенерированный во время миграции rails?

Причина, по которой я спрашиваю, заключается в том, что я не могу запустить миграции на производственном сервере, поскольку он поддерживается технической поддержкой (и никогда не затрагивался разработчиками) в моей компании. Разработчики предоставляют файл технической поддержки JRuby on Rails технической поддержке и разворачивают его через Tomcat. Но убедить техподдержку в установке JRuby и Rails просто для запуска миграции на производство определенно будет непросто. Мы хотим сделать развертывание по-настоящему простым и иметь как можно меньше зависимостей.

Мы хотим просто предоставить им файл войны и скрипт sql с изменениями в БД.

Ответы [ 2 ]

1 голос
/ 15 сентября 2010

Вы можете использовать какой-то инструмент для генерации различий из двух баз данных. Есть вопрос по этому вопросу здесь .

Если вы отправите тестовую базу данных в базу данных разработки сразу после запуска миграции, это, вероятно, будет самым простым способом. Возможно, даже стоит добавить грабли для этого; Получите, чтобы задача rake зависела от миграции, и тогда вы могли бы использовать новую задачу вместо rake db:migrate для генерации различий при каждой миграции.

0 голосов
/ 10 марта 2011

Я фактически закончил тем, что создал задачу rake, которая была исправлена ​​методом выполнения sql Activerecord, чтобы также вывести все sql в файл журнала (log/database.log). Таким образом, задача может быть запущена прямо перед db:migrate примерно так: rake db:log db:migrate. После этого вы можете извлечь соответствующие операторы и поместить их в файл db/sql_migrations/<migration name>.sql, чтобы ваши администраторы баз данных запустили их, когда они будут готовы.

К счастью, я сменил работу и больше не должен иметь дело с этим беспорядком процесса. :)

...