Я столкнулся с проблемой, как и вы. Вот мое описание проблемы.
попробуйте rake db: version, он возвращает 0.
попробуйте rake db: migrate, ничего не произошло и неттаблица создана, даже в db / migrate есть файлы миграции.попробуйте rake db: migrate VERSION = YourAnyMigrationFileTimestamp , возникло исключение, не обвиняет в такой миграции.
если ваша проблема, как у меня, может быть, вы получили или установите неправильную задачу rake, которая изменяет значение по умолчаниюroot при запуске задачи миграции.
, чтобы проверить его, вам нужно отладить третье задание (/1989568/ruby-on-rails-otladka-grablei может рассказать вам, как отладить рейк-задачу).
строка отладки 548 в activerecord-3.0.1 / lib / active_record /igration.rb, запустите Dir.pwd, если результат не является корнем вашего приложения, должна быть какая-то другая задача, измените каталог по умолчанию.
Вот что я сделалотладка
(rdb: 1) p self.class
ActiveRecord :: Migrator
(rdb: 1) n
/ home / raykin /.rvm/gems/ruby-1.9.2-p0@r3local/gems/activerecord- 3.0.1 / lib / active_record /igration.rb: 550
files = Dir ["# {@ migrations_path} / [0-9] _ .rb "]
(rdb: 1) n
/ home / raykin / .rvm / gems / ruby-1.9.2-p0 @r3local / gems / activerecord- 3.0.1 / lib / active_record /igration.rb: 552
migrations = files.inject ([]) do | классы, файл |
(rdb: 1) p файлы
[]
(rdb: 1) p @ migrations_path
"db / migrate /"
(rdb: 1) p Dir ['db / migrate / [0-9] _ .rb ']
[]
(rdb: 1) л
* выходной сигнал очищен *
(rdb: 1) Dir.pwd
* Неизвестная команда: "Dir.pwd".Попробуйте "help".
(rdb: 1) p Dir.pwd
"/ home / raykin / campus /: / code / campus / db / data_export"
видите, текущий каталог был изменен, потому что rails будет загружать все задачи перед запуском миграции (кажется, есть способ пропустить всю загрузку), а некоторые плохие задачи (я только что написал это вчера ...) изменяют текущий каталог.
Это точно не проблема Rails, но это действительно запутанный результат для пользователя.надеюсь, может помочь вам.