грабли дБ: мигрировать не удалось - PullRequest
1 голос
/ 02 февраля 2012

Я создаю простую таблицу пользователей, и когда я запустил rake db: migrate, она выглядела как create_table (: users) Однако я одновременно получил следующие предупреждения.Я попытался запустить rake db: migrate снова, и затем я получил вторую ошибку на этой странице.Как проверить, была ли создана таблица, и как предотвратить это предупреждение / ошибку?

ОШИБКА1

    WARNING: 'require 'rake/rdoctask'' is deprecated.  Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead.
    at /Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/lib/rake/rdoctask.rb
WARNING: Global access to Rake DSL methods is deprecated.  Please include
    ...  Rake::DSL into classes and modules which use the Rake DSL methods.
WARNING: DSL method DemoApp::Application#task called at /Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.1/lib/rails/application.rb:214:in `initialize_tasks'

ОШИБКА 2

rake aborted!
undefined local variable or method `d' for main:Object

Это то, что я получаю с --trace

/Users/anderskitson/rails_project/demo_app/Rakefile:1:in `<top (required)>'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `block in load_rakefile'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `block in run'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/bin/rake:19:in `load'
/Users/anderskitson/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/bin/rake:19:in `<main>'

Я побежал

Рельсы генерируют скаффолд Имя пользователя: строка электронная почта: строка

Затем я запустил

rake db:migrate

мой файл рейка выглядит как

d# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require File.expand_path('../config/application', __FILE__)
require 'rake'


DemoApp::Application.load_tasks

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

Удалите d, который является первым символом в вашем Rakefile:

d# Add your own tasks in files placed in lib/tasks ending in .rake,

Вы узнаете эту строку, потому что это номер строки, который указан в сообщении об ошибке, которое вы вставили, и выЯ могу сказать, что это ошибочная часть строки, потому что это именно то письмо, которое, как говорится в сообщении об ошибке, не может быть идентифицировано.

0 голосов
/ 02 февраля 2012

Это зависит от версии Rails, которую вы используете в настоящее время, но я бы порекомендовал создать новое приложение Rails и скопировать сгенерированный Rakefile, чтобы быть в курсе.Там, вероятно, есть require "rake/rdoctask", который необходимо изменить.

Тем не менее, это предупреждение, скорее всего, не приведет к сбою миграции.

Запустите его снова с --trace, чтобы получить полныйтрассировка стека.

...