我正在尝试手动创建/更新 db/struct.sql 文件以进行测试。我在 application.rb 中设置了“
config.active_record.schema_format = :sql
”。我想知道是否有一个相当于“ActiveRecord::SchemaDumper.dump
”的命令可以创建或更新structural.sql。我尝试过 Structure_dump,但输出为零:
> ActiveRecord::Base.connection.structure_dump
=> nil
我还尝试将文件传递给该方法:
> File.open( File.join(Rails.root, 'db/structure.sql')) { |f| ActiveRecord::Base.connection.structure_dump() }
=> nil
到目前为止,我能够生成或更新 db/struct.sql 的唯一方法是运行 rake db:migrate。还有其他选择吗?或者我在尝试运行 ActiveRecord::Base.connection.struction_dump 时丢失了某些内容?
更新:
对于 Rails 7+ 使用
SCHEMA_FORMAT=sql rails db:schema:dump
旧答案:
尝试
rake db:structure:dump
这将从数据库中重新创建 db/structure.sql
。
对于最新版本的 Rails,命令
rake db:schema:dump
也适用于 db/structure.sql
。