我是rails新手.我注意到,在rails 5中生成数据迁移时,有些人使用rails db:migraterake db:migrate.有人能解释一下rails和rake命令在数据库迁移中的区别吗?这是否意味着rake命令在rails 5中已经过时?

非常感谢

推荐答案

Rails核心团队决定通过使Rails命令支持rake所做的一切来保持一致性.

例如,在Rails 5中,Rails命令现在支持作为Rails 4中rake命令一部分的命令,如db:migratedb:setupdb:test等.不过,您仍然可以 Select 使用rake来运行这些命令,类似于Rails 4中的运行方式.这是因为Rails社区引入了Rake代理,而不是将命令选项从Rake完全移动到Rails.

内部情况是,当执行rails db:migrate命令时,Rails会判断db:migrate是否是Rails本机支持的.在本例中,db:migrate本机不受rails支持,因此rails通过Rake代理将执行委托给Rake.

如果您想查看rails 5中rails支持的所有命令,那么可以通过执行rails --help.

Ruby-on-rails相关问答推荐

在VP中部署rails 7和nginx

Rails 7.1,登录到STDOUT和LOG/Production.log

Sidekiq with Rails - 控制台与 rake 任务中的不同 Sidekiq 实例

Heroku 应用程序上的远程 mysql 数据库

Ruby Sinatra Web 服务在 localhost:4567 上运行,但不在 IP 上

如何在 Windows 中更新 ruby

为 ActionMailer 渲染不同的视图(模板)

在 Rails 的 ActiveRecord 中,touch 有什么用?

SQLite3::BusyException

模型验证中的 Rails 国际化 (I18n):可能与否?

添加自定义字段/列以使用 Rails 4 进行设计

Heroku 错误 R14(超出内存配额):我该如何解决?

如何在 rspec 测试中输出变量?

Rails 5.1:未知 firstpos:NilClass - 问题重新加载应用程序

在本地 Rails 开发环境中获取真实 IP 地址

如何跳过失败的迁移? (耙分贝:迁移)

Mongoid OR 查询语法

rake db:回滚不起作用?

列出关联模型的名称

Ruby/Rails CSV 解析,UTF-8 中的无效字节序列