当前位置:  开发笔记 > 后端 > 正文

rails structure.sql和schema.rb之间有什么区别

如何解决《railsstructure.sql和schema.rb之间有什么区别》经验,为你挑选了1个好方法。

我知道schema.rb文件是一个ruby文件,它在运行rake迁移时被创建和修改,但是struct.sql呢.

我在一些项目schema.rb和其他的struct.sql和一些两个文件中看到过,它们在哪里配置要创建的文件.

这两者究竟有什么区别.

生成的structure.sql是否特定于特定DB.



1> Simone Carle..:

主要区别在于它schema.rb是数据库的Ruby表示,并且通常与数据库无关.structure.sql而是数据库的SQL表示,它取决于您选择的特定数据库.

如果您具有所需的特定数据库功能并且无法表示,则仅使用该结构schema.rb.例如,在过去,为了在数据库级别使用PostgreSQL JSONB字段或外键约束,替换schema.rb了一些人structure.sql.

迁移现在支持这两个功能,因此您无需再切换到structure.sql这些功能(在这些情况下).

一般来说,我建议你使用schema.rb.


添加引用因为此问题在某些搜索中的比率非常高:https://edgeguides.rubyonrails.org/active_record_migrations.html#types-of-schema-dumps db/schema.rb无法表达触发器,序列,存储过程,检查约束或复合外键(但如Simone所述,表示jsonb for等功能)
推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有