我知道这个模式.rb文件是一个ruby文件,在运行rake迁移时会创建和修改它,但 struct 如何呢.sql.
我在一些项目中看到了模式.rb和其他 struct .sql和在某些两个文件中,它们在哪里配置要创建的文件.
两者之间到底有什么区别.
是 struct .生成的sql特定于特定的数据库.
我知道这个模式.rb文件是一个ruby文件,在运行rake迁移时会创建和修改它,但 struct 如何呢.sql.
我在一些项目中看到了模式.rb和其他 struct .sql和在某些两个文件中,它们在哪里配置要创建的文件.
两者之间到底有什么区别.
是 struct .生成的sql特定于特定的数据库.
主要区别在于,schema.rb
是数据库的Ruby表示,它通常与数据库无关.structure.sql
是数据库的SQL表示形式,它取决于您 Select 的特定数据库.
只有当您有特定的数据库功能,而这些功能不能用schema.rb
来表示时,才可以使用该 struct .例如,在过go ,有些人为了在数据库级别使用PostgreSQL JSONB字段或外键约束,将schema.rb
替换为structure.sql
.
这两个功能现在都在迁移中得到支持,因此您不再需要切换到structure.sql
(在这种情况下).
一般来说,我建议你使用schema.rb
.