Можно ли вывести сценарии изменения SQL, которые создает 'rake db: migrate'? - PullRequest
41 голосов
/ 04 ноября 2010

Можно ли вывести сценарии изменения SQL, которые создает 'rake db: migrate'?

Ответы [ 4 ]

77 голосов
/ 01 декабря 2011

Опираясь на @qarol, но еще круче, добавьте эту задачу Rake в один из ваших файлов Rake:

task :log => :environment do
  ActiveRecord::Base.logger = Logger.new(STDOUT)
end

Затем вы можете позвонить ЛЮБОЙ Rake-задание и записать вывод:

rake log db:migrate
35 голосов
/ 29 января 2011

Вы можете создать задачу Rake в lib/tasks/:

namespace :db do
  desc 'Make migration with output'
  task(:migrate_with_sql => :environment) do
    ActiveRecord::Base.logger = Logger.new(STDOUT)
    Rake::Task['db:migrate'].invoke
  end
end

Затем позвоните rake db:migrate_with_sql, чтобы зарегистрировать миграцию.

9 голосов
/ 04 декабря 2015

Вывод SQL записывается в файл журнала вашей среды, например, development.log

2 голосов
/ 25 октября 2018

Для этой цели я собрал камень capture_migration_sql .Он перенесет ваш миграционный SQL в файлы в db/migration_sql.

. Это излишне, если вам просто нужно найти один оператор SQL, но это здорово, если ваш рабочий процесс требует необработанных операторов SQL.Это также может сделать просмотр сложных изменений базы данных в обзорах кода немного проще, поскольку здесь не требуется ruby ​​-> SQL Math Math.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...