3

On every Rails projects I have on my computer, since I've reinstalled it, I can't run any migration: nothing happens when I enter rake db:migrate in a terminal

$ my_project ➜ rails g migration fake_migration

    invoke  active_record
    create  db/migrate/20140806092408_fake_migration.rb

$ my_project ➜ rake db:migrate:status

    database: /Users/me/Documents/my_project/db/development.sqlite3

    Status   Migration ID    Migration Name
    --------------------------------------------------
    down    20140806092408  Fake migration

$ my_project ➜ rake db:migrate

    ** Invoke db:migrate (first_time)
    ** Invoke environment (first_time)
    ** Execute environment
    ** Invoke db:load_config (first_time)
    ** Execute db:load_config
    ** Execute db:migrate
    ** Invoke db:_dump (first_time)
    ** Execute db:_dump
    ** Invoke db:schema:dump (first_time)
    ** Invoke environment
    ** Invoke db:load_config
    ** Execute db:schema:dump

$ my_project ➜ rake db:migrate:status

    database: /Users/me/Documents/my_project/db/development.sqlite3

    Status   Migration ID    Migration Name
    --------------------------------------------------
    down    20140806092408  Fake migration

And when I try to migrate manually (as suggested in comments):

$ my_project ➜ rake db:migrate:up VERSION=20140806092408 --trace

    rake aborted!
    ActiveRecord::UnknownMigrationVersionError:

    No migration with version number 20140806092408

    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activerecord-4.1.4/lib/active_record/migration.rb:933:in `run'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activerecord-4.1.4/lib/active_record/migration.rb:818:in `run'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activerecord-4.1.4/lib/active_record/railties/databases.rake:71:in `block (3 levels) in <top (required)>'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:240:in `block in execute'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `block in top_level'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:78:in `block in run'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
    /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rake-10.3.2/bin/rake:33:in `<top (required)>'
    /Users/me/.rbenv/versions/2.1.2/bin/rake:23:in `load'
    /Users/me/.rbenv/versions/2.1.2/bin/rake:23:in `<main>'
    Tasks: TOP => db:migrate:up
Arenzel
  • 1,156
  • 1
  • 11
  • 18

3 Answers3

14

If someone get this issue, keep an eye on your environment vars. If you defined a env var named "VERSION", it will block migration task.

I use dotenv gem to manage local development environment variables for railsn and when i removed a var called VERSION (i created this to manage API version), migrations worked as expected.

stacker
  • 270
  • 2
  • 9
0

It seems that migration file has missed/deleted as the Migration ID appears 000 instead of timestamps. Timestamps are unique. Re-generate migration and then rake db:migrate.

pruzoth
  • 41
  • 1
  • 11
  • I've done a `rake db:migrate:reset`, and the migration "000" was removed. Whatever, the problem is still there. I've updated my post with new code example. – Arenzel Aug 06 '14 at 09:33
  • use rake db:migrate:up VERSION=20140806092408 or rake db:migrate VERSION=20140806092408. – pruzoth Aug 06 '14 at 10:54
  • `No migration with version number 20140806092408`: updated code above to reflect this. – Arenzel Aug 06 '14 at 13:00
  • try rake db:migrate VERSION=0 and then rake db:migrate. If it is not working, try rake db:reset and then rake db:migrate. – pruzoth Aug 06 '14 at 13:25
  • I wonder if the problem could not be tied with this issue: http://stackoverflow.com/questions/24960417/rails-4-error-with-every-command-load-no-implicit-conversion-of-nil-into-str – Arenzel Aug 06 '14 at 14:18
0

Problem solved by using Vagrant instead of local installation. Don't really know what was the issue, maybe in tie with Mac OS X.

Arenzel
  • 1,156
  • 1
  • 11
  • 18