Rails:使用Apartment和MySQL的多租户

时间:2019-12-05 20:02:57

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

我正在使用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'

1 个答案:

答案 0 :(得分:0)

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