rake db:schema:dump

从迁移或数据库本身重建schema.rb

推荐答案

答案很简单:来自数据库.

顺便说一句,当你take a look into the source code of db:* tasks岁时,你可以看到迁移任务在运行后调用schema:dump

desc "Migrate the database (options: VERSION=x, VERBOSE=false)."
task :migrate => :environment do
  ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
  ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
  Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
end

因此,迁移的工作方式是更改数据库并生成模式.rb文件.

Ruby-on-rails相关问答推荐

HTTP:MimeNegotiation::InvalidType(html不是有效的MIME类型):""

关系 fields_for 上不允许的参数

无效的单表继承类型:Rails

骨干model.destroy()即使工作正常也会调用错误回调函数?

如何确定 Rails 是从 CLI、控制台还是作为服务器运行?

如何避免 has_many :through 关系中的重复?

Rails 模型:您将如何创建一组预定义的属性?

使用 Devise 令牌登录,这是内置的吗?

从控制器中删除 Cookie

什么是 Ruby 中的 Python 文档字符串?

mongoid 中 embeds_many 和 has_many 的区别

如何独立测试模型的回调方法?

什么是Ruby 用于 BESIDES 轨道?

如何将自定义路由添加到资源路由

按周/月/等和 ActiveRecord 分组?

如何使用 Rspec 判断 ActiveJob 中排队的内容

在 ruby​​ on rails 中创建自定义 html 助手

rails respond_to format.js API

Rails 3 设计,current_user 在模型中不可访问?

ActionMailer 在开发 Rails 4 中不发送邮件