如何解决apartment gem-不创建表postgresql
5.x
,postgres,apartment
宝石
仅在未创建Apartment::Tenant.create('microsoft')
其他20个表时仍在公共模式中创建的两个表下面。已创建microsoft
模式,但未创建表
这是我的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 举报,一经查实,本站将立刻删除。