我正在使用公寓 gem 和 MySQL 作为数据库在 Rails 中创建一个多租户应用程序。我在https://gorails.com/episodes/multitenancy-with-apartment之后设置了公寓。
在此之后,每当我创建一个新的子域时,都会为每个子域创建新的数据库。现在,如果我执行 rake db:drop,它只会删除主数据库,所有子域数据库都保持不变。
我的查询是如何删除子域数据库。
我正在使用公寓 gem 和 MySQL 作为数据库在 Rails 中创建一个多租户应用程序。我在https://gorails.com/episodes/multitenancy-with-apartment之后设置了公寓。
在此之后,每当我创建一个新的子域时,都会为每个子域创建新的数据库。现在,如果我执行 rake db:drop,它只会删除主数据库,所有子域数据库都保持不变。
我的查询是如何删除子域数据库。
您应该能够使用以下方法列出现有租户:
Apartment.tenant_names
你应该可以删除一个使用
Apartment::Tenant.drop('tenant_name')
https://github.com/influitive/apartment#dropping-tenants
但是,我将 Apartment 与 PostreSQL 一起使用,生成的模式并没有真正正确删除,我必须手动使用
ActiveRecord::Base.connection.execute "DROP SCHEMA IF EXISTS #{tenant} CASCADE;"