Rails rake db:migrate需要一个javascript运行时吗?

mar*_*cio 4 javascript rake ruby-on-rails

在我的第一个rails项目(使用mysql)中我尝试执行该rake db:create命令,但它输出了以下错误:

找不到JavaScript运行时.有关可用运行时的列表,请参阅 https://github.com/sstephenson/execjs.

所以我把它包含gem 'therubyracer', require: "v8"在我的Gemfile中并执行了一个bundle install.问题解决了,但它留下了一些疑问.

有人可以给我一个解释为什么这种任务需要一个javascript运行时?我是Ruby和RoR的新手所以这对我来说似乎很奇怪,为什么RoR使用javascript创建数据库?

luc*_*tte 8

您需要一个javascript运行时,因为现在Rails使用资产管道.Rails不需要它来运行您的迁移,但是当您运行时rake db:migrate,rake任务会加载需要启动javascript运行时的rails应用程序.实际上,迁移和javascript运行时之间没有关系,但没有它你的应用程序将无法加载.