#ruby-on-rails #ruby
#ruby-on-rails #ruby
Вопрос:
Я использую жемчужину квартиры с Rails 5.2.1 для создания приложения с несколькими арендаторами. В моей среде разработки все работает нормально, но у меня есть проблемы с настройкой производственной среды, потому что мой хостинг-провайдер разрешает мне использовать базы данных MySQL только с предопределенными именами, такими как usr_webxx_1, usr_webxx_2 и так далее.
Моя база данных.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 «Арендаторы на разных серверах», так что моя конфигурация квартиры выглядит следующим образом:
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',
encoding: 'utf8',
pool: 5,
reconnect: false,
timeout: 5000,
host: 'localhost',
database: 'usr_webxx_3',
username: 'webxx',
password: '<password>'
}
}
else
config.tenant_names = lambda { Tenant.pluck :subdomain }
end
Rails.application.config.middleware.use Apartment::Elevators::Subdomain
Моя таблица арендаторов, которая исключена
config.excluded_models = %w{ Tenant }
содержит две записи name = tenant_one, поддомен = tenant_one и name = tenant_two, поддомен = tenant_two
Миграция всей базы данных арендатора работает должным образом, но когда я пытаюсь получить доступ к арендатору в браузере с помощьюhttp://tenant_one.domain.com в рабочем журнале отображается следующее сообщение об ошибке: Квартира::Арендатор не найден (Ошибка при подключении к арендатору tenant_one: пользователю ‘webxx’@’localhost’ отказано в доступе к базе данных ‘tenant_one’):
Я попытался поиграть с параметром конфигурации use_schemas, но, похоже, нет никакой разницы в отношении этой ошибки, установлено ли для нее значение true или false.
У кого-нибудь есть подсказка для меня, что не так с моей конфигурацией. Заранее спасибо.
Майкл