Rails,生产环境中的公寓宝石,错误消息:找不到租户

问题描述

我正在将Apartment gem与Rails 5.2.1结合使用来创建多租户应用程序。在我的开发环境中,一切正常,但在设置生产环境时确实存在问题,因为托管提供程序仅允许我使用具有预定义名称(如usr_webxx_1,usr_webxx_2等)的MySQL数据库。

我的database.yml如下所示,因此usr_webxx_1是公用(租户无关)数据库。

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: usr_webxx_1
  pool: 5
  username: webxx
  password: <password>
  host: localhost
  timeout: 5000

要配置不同的租户数据库,我按照Apartment GitHub页面“不同服务器上的租户”中的说明进行操作,因此我的Apartment配置如下所示:

  if Rails.env.production?
    config.tenant_names = {
        'tenant_one' => {
            adapter: 'mysql2',encoding: 'utf8',pool: 5,reconnect: false,timeout: 5000,host: 'localhost',database: 'usr_webxx_2',username: 'webxx',password: '<password>'
        },'tenant_two' => {
            adapter: 'mysql2',database: 'usr_webxx_3',password: '<password>'
        }
    }
  else
    config.tenant_names = lambda { Tenant.pluck :subdomain }
  end

Rails.application.config.middleware.use Apartment::Elevators::Subdomain

我的租户表被排除在外

config.excluded_models = %w{ Tenant }

包含两个条目,名称= tenant_one,子域= tenant_one,name = tenant_two,子域= tenant_two

所有租户数据库的迁移工作正常,但是当我尝试通过http://tenant_one.domain.com访问浏览器中的租户时,生产日志显示以下错误消息: Apartment :: TenantNotFound(连接到租户tenant_one时出错:用户'webxx'@'localhost'对数据库'tenant_one'的访问被拒绝):

我尝试使用use_schemas配置参数,但是无论此错误设置为true还是false,似乎都没有区别。

有人对我有提示吗,我的配置有什么问题。预先感谢。

迈克尔

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...