繁体   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