微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

apartment gem-不创建表postgresql

如何解决apartment gem-不创建表postgresql

5.x,postgres,apartment宝石

仅在未创建Apartment::Tenant.create('microsoft')其他20个表时仍在公共模式中创建的两个表下面。已创建microsoft模式,但未创建表

enter image description here

这是我的apartment.rb

config.excluded_models = %w{ Account }

和租户名称

config.tenant_names = lambda { Account.pluck :domain }

使用模式

config.use_schemas = true

当我抽空db:migrate时,它没有在schema.rb上创建任何内容,而我创建了一个带有公寓的新应用程序。它在schema.rb.

内部产生了另一组迁移

例如:create_table "companies",force: :cascade do |t|

解决方法

请在初始化程序中检查您的apartment.rb文件。

确认已配置新租户。如果您有静态数组,则需要扩展它。

config.tenant_names = ['tenant1','myothertenant','microsoft']

您可以通过在配置中添加lambda使其动态化:

config.tenant_names = lambda { some_tenant_loading_func }

还要检查是否已设置pg特定选项:

config.use_schemas = true

此选项指定是使用PostgreSQL模式还是为每个租户创建一个新数据库。

,

sql格式已启用config/application.rb

config.active_record.schema_format = :sql

如公寓配置中所述,

公寓可能被迫使用原始SQL转储而不是schema.rb来创建新的架构。 当您使用PostgreSQL中某些无法表示的额外功能时,请使用此功能 schema.rb,例如物化视图等(仅在use_schemas设置为true的情况下适用)。 (注意:此选项不使用db / structure.sql,而是通过执行pg_dump创建SQL转储)

config.use_sql = true

解决了该问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?