簡體   English   中英

如何定義Rails模型設置的架構?

[英]How do define the schema that a rails model is set to?

例如,當我生成事件模型時,該表會自動設置為公共模式。 如何指定它以設置為其他架構?

此外,如何更改現有表的架構? 也許將其移至其他架構?

謝謝!

免責聲明:我不知道rails,所以在這里我將給出非常面向PostgreSQL的答案。 對於您的問題的第一部分,通過在創建表時使rails指定架構,可能有一種更好的方法。

在PostgreSQL中,將根據search_path設置在模式中搜索表。 默認情況下,此設置為"$user",public 在存在的搜索路徑中找到的第一個架構中創建表。 因此,如果以“ my_user”身份連接,它將嘗試在“ my_user”中創建表,如果“ my_user”不存在,則將退回到在“ public”中創建表。

因此,一種方法是更新用於連接數據庫的用戶的“ search_path”設置,以進行模式更改。 例如,您可以說ALTER USER my_user SET search_path = my_app, public 如果隨后創建“ my_app”模式,則隨后由“ my_user”執行的CREATE TABLE foo(...)命令會將新表放入“ my_app”。

您可以使用ALTER TABLE foo SET SCHEMA my_app的架構。

創建遷移以生成新的架構。 ActiveRecord無法將您的模式更新為模式系統。 如果要從代碼更新架構,可以嘗試使用續集或DataMapper。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM