【问题标题】:Rails : Multi-tenancy using Apartment and MySQLRails:使用 Apartment 和 MySQL 的多租户
【发布时间】:2019-12-05 20:02:57
【问题描述】:

我正在使用 Apartment gem & Devise 创建一个应用程序(在 Rails 6.0.1 上),但我不知道如何使用 MySQL 使其工作..

我已经完成了所有配置和东西,生成了我的用户设计模型等,但是当我尝试rails db:migrate 时发生错误:

Migrating  tenant
Error while connecting to tenant : Mysql2::Error: No database selected

意思是我没有正确配置 Apartment 以使用我的 Mysql 数据库,对吗?我找不到有关如何正确连接它的任何信息(我可以用初学者的术语理解)。我的database.yml 有以下内容:

// database.yml

default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: myusername
  password: mypassword
  socket: /tmp/mysql.sock

(...)

请注意,我的 rails 应用程序中的用户名和密码是正确的 :) 一切正常,直到我尝试创建多租户的东西。这意味着问题可能来自我的config/initializers/apartment.rb 文件?

这是现在的样子

// config/initializers/apartment.rb
require 'apartment/elevators/subdomain'
Apartment.configure do |config|
  config.excluded_models = %w[User]
  config.tenant_names = -> { User.pluck :subdomain }
  config.use_schemas = true
end

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

编辑:我正在使用 Apartment 的开发分支。也许这是 Rails 6 的问题?

// Gemfile

gem 'apartment', github: 'influitive/apartment', branch: 'development'

【问题讨论】:

  • 您还有这个问题吗?将 use_schemas 设置为 false,因为您使用的是 mysql

标签: ruby-on-rails multi-tenant apartment-gem


【解决方案1】:

我想现在你已经解决了你的问题,但对于那些来这里寻找在 Rails 6 中处理多租户的人来说。我自己发现了几件事:

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    相关资源
    最近更新 更多