Здравствуйте!
С Drupal (8) я только в процессе знакомства...
Задача у меня такая - запустить несколько сайтов в режиме мультисайтинга с разными БД и общими для всех сайтов пользователями и, может, ещё какими-нибудь данными.
Принципиально всё, вроде бы, получается, но чтобы грамотно расшарить таблицы БД, нужно знать, какие таблицы какие сведения содержат, а этого я нигде не нашёл. В разных статьях (которые, спасибо авторам, оказались полезными) предлагается расшаривать разные наборы таблиц, как видно, на усмотрение и под задачи собственно авторов статей, но без подробностей... Возможно, это еще и от версии Друпала зависит (я не знаю)...
Поэтому, хотелось бы увидеть список таблиц Drupal 8 хотя бы "в стандартной комплектации"... Может, кто выложит, или ссылочку кинет, куда помотреть, буду весьма благодарен... )
Комментарии
settings.php и default.settings.php
<?php
/**
* Customizing database settings:
*/
?>
Штудируйте. Там как раз пример для "шары" юзеров и 4 их таблицы.
P.S. https://www.drupal.org/node/1785994
Спасибо огромное!
Не советую делать через общие таблицы. Делал так еще на семерке, довольно-таки стрёмное решение.
Лучше - одну базу и модуль Domain Access
Скажите, в чём преимущество с Domain Access? Я про него, если честно, не слышал...
У меня есть мультисайт на WordPress, там стоит специальный плагин и одна база на все сайты, в принципе, нормально работает... Но тут вот увидел возможность создавать базы для каждого сайта, теоретически показалось лучшим решением, нагрузка же по запросам на отдельную базу снижается...
Какие там есть удобства в DA?
Разделение контента по доменам, в т.ч. мультидоменный контент с canonical на заданный, разные меню для доменов, индивидуальные настройки для сайтов - тема оформления, название-слоган-логотип, доступные языки и т.д, отдельные пользовательские роли/права доступа подоменно.
Для извлечения "момента истины", следуя вашему совету, создал ещё одну установку Drupal 8 - с модулем Domain Access...
Но только вот не могу найти (может, плохо ищу) какое-либо руководство по настройке на нём мультисайта... Могли бы вы хотя бы кратко описать процесс создания сайта или кинуть нужную ссылку? )
Прекрасно все работает на "ядренном" мультисайте... ГОДАМИ
+ всю вашу архитектуру можно спокойно разделить/объединить, без потери проекта/ов.
А Domain Access может быть и плохим решением. По сути - это просто доменный контекст.
https://oneshoe.com/blog/multi-site-vs-multi-domain-solution-differences
http://wadmiraal.net/lore/2014/10/08/why-i-do-not-recommend-domain-access/
Ну, тут, конечно же, всё зависит от задачи... Я сейчас вот поставил DA, посмотрел.... Очень хорошее решение, но мне тот, который вы назвали "ядрёным", больше подходит - потенциально в нём свободы больше (я так предполагаю)..)...
Но есть пока нерешённые проблемы...
Расшарил таблицы:
'users'
'sessions'
'role'
'authmap'.
Создал общий кеш, единый вход прекрасно работает...
Ещё расшарил
'users_data'
'users_field_data',
теперь пользователи отображаются на всех сайтах, видно у кого какая роль...
А вот картинку для пользователей общую на всех сайтах сделать не получается... У разных авторов в примерах присутствует таблица 'user__user_picture', но у меня почему-то не расшаривается (...
Еще там есть возможность добавлять пользователям поля для заполнения, это бы тоже сделать общим для всех сайтов...
Вот при каждом добавлении поля - начнется беда, т.к. каждое поле - это 2 таблицы в БД: с текущими значениями и с ревизиями (даже если они отключены). И если добавить поле на одном из сайтов, то в базах других сайтов таблицы не создадутся, а дальше все зависит от того, являются ли таблицы с настройками полей общими. Скорее всего, они должны быть общими, т.к. некоторые поля надо делать общими на разных сайтах, иначе зачем тогда вообще объединять их.
Так вот, при добавлении поля на одном из сайтов, в его базе будут созданы таблицы этого поля, и в общие таблицы с конфигами полей будет добавлена запись об этом поле. Соответственно, все остальные сайты будут считать, что такое поле есть, но его таблиц у себя не найдут, и будут выдавать ошибку PDO.
То есть, перед добавлением такого общего поля, сначала надо будет не забыть добавить инфу о его таблицах в settings.php.
Это я по памяти сейчас пишу как было в семерке, в восьмерке примерно так же получится.