Rails - 公寓 - MySQL 删除租户数据库

siv*_*mal 2 mysql ruby-on-rails-4 apartment-gem

我正在使用公寓 gem 和 MySQL 作为数据库在 rails 中创建一个多租户应用程序。我在https://gorails.com/episodes/multitenancy-with-apartment 之后设置了公寓。

在此之后,每当我创建一个新的子域时,都会为每个子域创建新的数据库。现在,如果我执行 rake db:drop,它只会删除主数据库,而所有子域数据库都保持不变。

我的查询是如何删除子域数据库。

Mah*_*aid 5

您应该能够使用以下方法列出现有租户:

Apartment.tenant_names
Run Code Online (Sandbox Code Playgroud)

你应该能够删除一个使用

Apartment::Tenant.drop('tenant_name')
Run Code Online (Sandbox Code Playgroud)

https://github.com/influitive/apartment#dropping-tenants

但是,我将 Apartment 与 PostreSQL 一起使用,生成的模式并没有真正被正确删除,我不得不手动使用

ActiveRecord::Base.connection.execute "DROP SCHEMA IF EXISTS #{tenant} CASCADE;"
Run Code Online (Sandbox Code Playgroud)