公寓 gem - 不创建表 postgresql

apartment gem - not creating tables postgresql

Rails 5.x , postgres , apartment gem

仅在 Apartment::Tenant.create('microsoft') 其他 20 个表未创建时创建了以下两个表,仍在 public 模式中。 microsoft 已创建架构但未创建表

这是我的 apartment.rb

config.excluded_models = %w{ Account }

和租户姓名

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

使用模式

config.use_schemas = true

当我做 rake 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

已解决问题。