Способ просмотра результатов Rails Migration - PullRequest
6 голосов
/ 14 апреля 2010

Есть ли простой способ увидеть фактический SQL, сгенерированный миграцией rails?

У меня возникла ситуация, когда миграция для изменения типа столбца сработала на моей локальной машине разработки из-за частичного сбоя на рабочем сервере.

Мои версии postgreSQL различаются между локальной и рабочей (7 в рабочей, 8 в локальной), поэтому я надеюсь, что, взглянув на SQL, сгенерированный при успешной миграции локально, я могу выработать оператор SQL для запуска в рабочей среде и исправить вещи ....

Ответы [ 3 ]

6 голосов
/ 14 апреля 2010

Посмотрите файлы журналов: log / development.log локально против log / production.log на вашем сервере.

3 голосов
/ 14 апреля 2010

Я немного покопался и нашел другой способ, которым это тоже может быть достигнуто ... (Этот способ дает вам только SQL, так что мне было немного легче его читать)

Postgresql будет регистрировать все выполненные запросы, если вы поместите эту строку в файл конфигурации: (есть пример, который был закомментирован в разделе «Что регистрировать» в файле конфигурации)

log_statement = 'all'

Затем я откатился и снова запустил миграцию локально, чтобы найти SQL, который я искал.

Этот метод также дает вам SQL в формате, в котором вы можете легко вставить его в что-то вроде конструктора запросов PGAdmin и возиться с ним.

1 голос
/ 14 августа 2015

Вы можете установить регистратор на STDOUT в верхней части методов миграции change, up или down. Пример:

class SomMigration < ActiveRecord::Migration
  def change
    ActiveRecord::Base.logger = Logger.new(STDOUT)

    # ...
  end
end

Или см. этот ответ , чтобы добавить ведение журнала SQL во все задачи rake

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