rails structure.sql 和 schema.rb 有什么区别
What is the difference between rails structure.sql and schema.rb
我知道 schema.rb 文件是一个 ruby 文件,它是在 运行 rake 迁移时创建和修改的,但是 structure.sql 呢?
我在一些项目 schema.rb 和其他项目 structure.sql 以及一些这两个文件中看到,他们在哪里配置要创建的文件。
两者到底有什么区别。
是否structure.sql生成特定于特定数据库。
主要区别在于 schema.rb
是数据库的 Ruby 表示,通常与数据库无关。 structure.sql
相反是数据库的 SQL 表示,它取决于您选择的特定数据库。
仅当您具有所需的特定数据库功能且 schema.rb
无法表示时才使用该结构。例如,过去有人将 schema.rb
替换为 structure.sql
,以便在数据库级别使用 PostgreSQL JSONB 字段或外键约束。
迁移现在支持这两个功能,因此您不再需要切换到 structure.sql
(在这些情况下)。
一般来说,我建议你使用schema.rb
。
我知道 schema.rb 文件是一个 ruby 文件,它是在 运行 rake 迁移时创建和修改的,但是 structure.sql 呢?
我在一些项目 schema.rb 和其他项目 structure.sql 以及一些这两个文件中看到,他们在哪里配置要创建的文件。
两者到底有什么区别。
是否structure.sql生成特定于特定数据库。
主要区别在于 schema.rb
是数据库的 Ruby 表示,通常与数据库无关。 structure.sql
相反是数据库的 SQL 表示,它取决于您选择的特定数据库。
仅当您具有所需的特定数据库功能且 schema.rb
无法表示时才使用该结构。例如,过去有人将 schema.rb
替换为 structure.sql
,以便在数据库级别使用 PostgreSQL JSONB 字段或外键约束。
迁移现在支持这两个功能,因此您不再需要切换到 structure.sql
(在这些情况下)。
一般来说,我建议你使用schema.rb
。