15
我知道schema.rb文件是ruby文件,它在運行rake遷移時創建和修改,但是struct.sql又如何呢?rails structure.sql和schema.rb之間的區別是什麼
我已經在一些項目中看到schema.rb和其他結構.sql以及在一些這兩個文件中,他們在哪裏配置要創建的文件。
這兩者之間的區別究竟是什麼。
是否生成的structure.sql特定於特定的數據庫。
我知道schema.rb文件是ruby文件,它在運行rake遷移時創建和修改,但是struct.sql又如何呢?rails structure.sql和schema.rb之間的區別是什麼
我已經在一些項目中看到schema.rb和其他結構.sql以及在一些這兩個文件中,他們在哪裏配置要創建的文件。
這兩者之間的區別究竟是什麼。
是否生成的structure.sql特定於特定的數據庫。
主要區別在於schema.rb
是數據庫的Ruby表示,它通常與數據庫無關。 structure.sql
改爲數據庫的SQL表示形式,它取決於您選擇的特定數據庫。
如果您具有您需要但不能由schema.rb
表示的特定數據庫功能,則只能使用該結構。例如,過去爲了在數據庫級別使用PostgreSQL JSONB字段或外鍵約束,過去有些人用schema.rb
替換爲structure.sql
。
遷移現在支持這兩種功能,因此您不需要切換到structure.sql
(在這些情況下)。
一般來說,我建議你使用schema.rb
。