我知道 schema.rb 文件是一个 ruby 文件,它在运行 rake 迁移时被创建和修改,但是 structure.sql 呢。
我在一些项目 schema.rb 和其他 structure.sql 以及一些两个文件中看到,他们在哪里配置要创建的文件。
两者究竟有什么区别。
生成的 structure.sql 是特定于特定数据库的。
最佳答案
主要区别在于 schema.rb
是数据库的 Ruby 表示,它通常与数据库无关。 structure.sql
是数据库的 SQL 表示,它取决于您选择的特定数据库。
仅当您具有所需的特定数据库功能且无法由 schema.rb
表示时才使用该结构。例如,过去有人为了在数据库级别使用 PostgreSQL JSONB 字段或外键约束,将 schema.rb
替换为 structure.sql
。
现在迁移中支持这两个功能,因此您不再需要切换到 structure.sql
(在这些情况下)。
一般来说,我建议你使用 schema.rb
。
关于ruby-on-rails - rails structure.sql 和 schema.rb 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34394823/