结构只是数据库的sql
版本,而模式是数据库的Rails
版本吗?你想什么时候加载?或者它有所作为?
答案 0 :(得分:3)
模式文件是数据库的Rails版本,并不包含任何特定于数据库的内容,如视图,触发器等。
db / schema.rb无法表达特定于数据库的项目,例如触发器, 序列,存储过程或检查约束等。请注意 虽然自定义SQL语句可以在迁移中运行,但这些 语句转储器无法重构语句。如果你是 使用这样的功能,您应该将架构格式设置为 :SQL。 http://edgeguides.rubyonrails.org/active_record_migrations.html#schema-dumping-and-you
您何时使用其中一个取决于您是否具有所需的数据库特定内容。如果您使用的只是基本表,使用索引以及主键和外键,您最好使用模式文件。
在我看来,我总是使用structure.rb
,因为我总是使用一些特定于数据库的东西。
您可以在config/application.rb
文件中更改此格式,以更改要使用的格式。
config.active_record.schema_format = :sql # default is :ruby