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

Does Rails rake db:migrate needs a javascript runtime?

本文关键字:javascript 运行时 需要 migrate rake db Rails      更新时间:2023-09-26

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

找不到JavaScript运行时。看到可在https://github.com/sstephenson/execjs上获得可用的列表运行时。

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

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

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

这是为服务器端执行的javascript。它被NodeJS, Coffeescript和相当多的javascript宝石所使用。如果你不使用这些,你可以把它们从你的gemfile中删除,这样就不需要运行时了。