Отладка миграции в rails 3 с помощью ruby-debug?

Как отладить мои миграции с помощью ruby-debug в rails 3?

запуск rake db:migrate, похоже, не вызывает никаких команд отладчика, как в Rails 2. И rake db:migrate --debugger тоже не работает.

Спасибо.


person jaycode    schedule 12.02.2011    source источник


Ответы (1)


Мне удалось отладить миграцию, выполнив следующие действия.

Добавьте ruby-debug в Gemfile

gem 'ruby-debug19'

В миграции добавьте require 'ruby-debug' и выполните debugger в строке, которую хотите остановить. Например

require 'ruby-debug'

class CreatePeople < ActiveRecord::Migration

  def self.up
    debugger
    create_table :people do |t|
      t.string :name
      t.String :email

      t.timestamps
    end
  end

  def self.down
    drop_table :people
  end
end

затем запустите rake db:migrate или любую другую команду БД. Например

~/dev/ruby/migrate$ rake db:migrate
(in /Users/augusto/dev/ruby/migrate)
==  CreatePeople: migrating ===================================================
/Users/augusto/dev/ruby/migrate/db/migrate/20110212134536_create_people.rb:7
create_table :people do |t|
(rdb:1) list
[2, 11] in /Users/augusto/dev/ruby/migrate/db/migrate/20110212134536_create_people.rb
   2  
   3  class CreatePeople < ActiveRecord::Migration
   4  
   5    def self.up
   6      debugger
=> 7      create_table :people do |t|
   8        t.string :name
   9        t.String :email
   10  
   11        t.timestamps
(rdb:1)
person Augusto    schedule 12.02.2011