Answers:
如果运行rake -T
它,它将列出Rails项目的所有可能的rake任务。其中之一是db:schema:dump,它将从数据库中为Rails应用程序重新创建schema.rb。
bundle exec rake db:schema:dump
rake db:schema:dump
在Rails 2.0 之后仍然包含空模式
小心,
rake db:schema:dump
将转储当前数据库架构从数据库中。这意味着,如果您对迁移进行了任何更改,它们将不会反映在schema.rb文件中,这不是您想要的IMO。
如果要从迁移中重新创建架构,请执行以下操作:
rake db:drop # ERASES THE DATABASE !!!!
rake db:create
rake db:migrate
rake db:schema:dump
命令。
铁路5方式:
rails db:schema:dump
或者,如果您遇到Gem :: LoadError,则:
bundle exec rails db:schema:dump
注意:
在rails 5中,建议使用rails
代替生成/执行任务rake
,这只是要记住,rails生成的任务的扩展名.rake
参见中lib/tasks/myTask.rake
。这意味着这些任务也可以通过前置来执行rake
。
直接来自schema.rb文件本身:
如果您需要在另一个系统上创建应用程序数据库,则应该使用
db:schema:load
,而不是从头开始运行所有迁移。后者是一种有缺陷且不可持续的方法(您将积聚的迁移次数越多,运行的速度就越慢,出现问题的可能性就越大)。
因此,请勿执行的建议rake db:migrate
-在撰写本文时-给出最低评分的答案。