我正在尝试在irb上运行迁移脚本,但它会返回语法错误。
irb(main):008:0> rake db:migrate:up VERSION=20171006190045
SyntaxError: (irb):8: syntax error, unexpected tLABEL
rake db:migrate:up VERSION=20171006190045
尝试rake db:migrate:redo VERSION=20171006190045
也尝试了这个
irb(main):012:0> require 'db/migrate/20171006190045_update_details.rb'
LoadError: cannot load such file -- db/migrate/20171006190045_update_details.rb
from (irb):12
答案 0 :(得分:2)
rake
并不意味着在IRB中运行。我同意@spickermann。您可以使用system
命令在rails控制台中运行它。
$ rails c
> system("rake db:migrate:up VERSION=20171006190045")
或只是在终端
$ rake db:migrate:up VERSION=20171006190045
答案 1 :(得分:1)
rake
并不意味着在IRB中运行。这是一个像IRB这样的命令行程序。只需退出IRB并在终端中运行它。
答案 2 :(得分:1)
irb
未对rake
做出回应。像这样退出irb
:
irb(main):008:0> exit
然后只需运行你的rake命令:
rake db:migrate:up VERSION=20171006190045
答案 3 :(得分:0)
不,没有必要使用系统命令运行它。
Rails.application.load_tasks
Rake::Task['my_task'].invoke