Можем ли мы переименовать арендатора в квартире-жемчужине или нам нужно отказаться от арендатора и создать новый, чтобы достичь этого.Квартира драгоценный камень: Как переименовать арендатора?
Просьба предоставить мне несколько предложений
Можем ли мы переименовать арендатора в квартире-жемчужине или нам нужно отказаться от арендатора и создать новый, чтобы достичь этого.Квартира драгоценный камень: Как переименовать арендатора?
Просьба предоставить мне несколько предложений
Я не думаю, что это доступно через многоквартирном камень, но это довольно просто сделать с помощью запроса SQL. Это зависит от вашей настройки.
Если вы используете Postgresql со схемой для каждого арендатора:
ALTER SCHEMA old RENAME TO new;
Если вы используете MySql, вы должны переименовать имя таблицы префиксов для арендатора. Это должно работать, если базы данных находятся в одной и той же файловой системе:
RENAME TABLE current_tenant.table TO new_tenant.table;
Отказ от ответственности: не проверено.
Вы можете изменить имя (в моем случае поддомен) делать что-то вроде этого:
1) Ваша схема должна быть какая-то уникальная колонка в арендаторах модели (shema_id
штраф). Я генерирую его значение из поддомена и идентификатора арендатора. 2) В apartment.rb
вы require "apartment/elevators/generic"
. Затем
config.tenant_names = -> { Tenant.pluck :shema_id }
так что вы используете вещи shema, такие как имя арендатора. Затем на нижней части файла добавить
Rails.application.config.middleware.use "Apartment::Elevators::Generic", lambda { |request|
Tenant.find_by(subdomain: request.host.split(".").first).schema_id
}
Теперь после того, как Вы делаете правильную подобласть просит вещи, Вы или Ваш пользователь арендатора можете изменить имя/поддомен и данные в схемах будут безопасными.
PS: Также смотрите здесь - https://github.com/influitive/apartment/issues/242
Благодаря @zwippie "ALTER SCHEMA старый Присвоить новый" это сделал ..... –