Rails耙db:structure:load与耙db:schema:load

sta*_*lei -1 database rake schema ruby-on-rails data-structures

结构是sql数据库的一个版本,而架构是数据库的一个Rails版本吗?您什么时候要加载?还是有所作为?

Eye*_*dic 5

模式文件是数据库的Rails版本,不包含任何特定于数据库的内容,例如视图,触发器等。

db / schema.rb无法表示特定于数据库的项,例如触发器,序列,存储过程或检查约束等。请注意,尽管可以在迁移中运行自定义SQL语句,但架构转储程序不能重构这些语句。如果使用的是这样的功能,则应将架构格式设置为:sql。 http://edgeguides.rubyonrails.org/active_record_migrations.html#schema-dumping-and-you

什么时候可以使用另一个取决于您是否需要数据库特定的东西。如果您只使用基本表,索引,主键和外键,那么最好使用架构文件。

但是我认为我一直使用,structure.sql因为我总是使用一些数据库特定的东西。

您可以通过在config/application.rb文件中进行更改来更改要使用的格式。

config.active_record.schema_format = :sql # default is :ruby 
Run Code Online (Sandbox Code Playgroud)