0

db:migrate タスクを実行している間、移行は実際には行われません。私のRakefileのコードは次のとおりです。

namespace :db do
  desc "Migrate the database through scripts in lib/generators/facebook_event_fetcher/install/templates. Target specific version with VERSION=x"
  task :migrate => :environment do
    ActiveRecord::Migration.verbose = true
    #ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil )
    ActiveRecord::Migrator.migrate('lib/generators/facebook_event_fetcher/install/templates', nil)
  end

  task :environment do
    ActiveRecord::Base.establish_connection(YAML.load_file("config/database.yml"))
    ActiveRecord::Base.logger = Logger.new(File.open('db/database.log', 'a')) 
  end
end

Github リポジトリを詳しく見ることができます: https://github.com/mabounassif/facebook_event_fetcher/blob/master/Rakefile#L42

移行がトリガーされないのはなぜですか??

4

1 に答える 1

0

ActiveRecord::Migrator は、バージョンを追跡できるように、番号またはタイムスタンプで始まる移行ファイルを必要とします。リポジトリで移行を実行するために私が行ったことは次のとおりです。

facebook_event_fetcher/lib/generators/facebook_event_fetcher/install/templates$ mv create_delayed_jobs.rb 001_create_delayed_jobs.rb
facebook_event_fetcher/lib/generators/facebook_event_fetcher/install/templates$ cd ../../../../..
facebook_event_fetcher/lib$ cd ..
facebook_event_fetcher$ rake db:migrate
==  CreateDelayedJobs: migrating ==============================================
-- create_table(:delayed_jobs, {:force=>true})
   -> 0.0076s
-- add_index(:delayed_jobs, [:priority, :run_at], {:name=>"delayed_jobs_priority"})
   -> 0.0004s
==  CreateDelayedJobs: migrated (0.0081s) =====================================
于 2012-12-07T23:58:55.307 に答える