Где найти список таблиц БД?

Главные вкладки

Аватар пользователя Alexey_Qi Alexey_Qi 15 ноября 2019 в 15:16

Здравствуйте!

С Drupal (8) я только в процессе знакомства...

Задача у меня такая - запустить несколько сайтов в режиме мультисайтинга с разными БД и общими для всех сайтов пользователями и, может, ещё какими-нибудь данными.

Принципиально всё, вроде бы, получается, но чтобы грамотно расшарить таблицы БД, нужно знать, какие таблицы какие сведения содержат, а этого я нигде не нашёл. В разных статьях (которые, спасибо авторам, оказались полезными) предлагается расшаривать разные наборы таблиц, как видно, на усмотрение и под задачи собственно авторов статей, но без подробностей... Возможно, это еще и от версии Друпала зависит (я не знаю)...

Поэтому, хотелось бы увидеть список таблиц Drupal 8 хотя бы "в стандартной комплектации"... Может, кто выложит, или ссылочку кинет, куда помотреть, буду весьма благодарен... )

Лучший ответ

Аватар пользователя adano adano 15 ноября 2019 в 15:31
1

settings.php и default.settings.php

<?php
/**
 * Customizing database settings:
 */
?>

Штудируйте. Там как раз пример для "шары" юзеров и 4 их таблицы.

P.S. https://www.drupal.org/node/1785994

Комментарии

Аватар пользователя Alexey_Qi Alexey_Qi 16 ноября 2019 в 22:13

Скажите, в чём преимущество с Domain Access? Я про него, если честно, не слышал...
У меня есть мультисайт на WordPress, там стоит специальный плагин и одна база на все сайты, в принципе, нормально работает... Но тут вот увидел возможность создавать базы для каждого сайта, теоретически показалось лучшим решением, нагрузка же по запросам на отдельную базу снижается...
Какие там есть удобства в DA?

Аватар пользователя Andruxa Andruxa 16 ноября 2019 в 23:07

Разделение контента по доменам, в т.ч. мультидоменный контент с canonical на заданный, разные меню для доменов, индивидуальные настройки для сайтов - тема оформления, название-слоган-логотип, доступные языки и т.д, отдельные пользовательские роли/права доступа подоменно.

Аватар пользователя Alexey_Qi Alexey_Qi 17 ноября 2019 в 12:50

Для извлечения "момента истины", следуя вашему совету, создал ещё одну установку Drupal 8 - с модулем Domain Access...
Но только вот не могу найти (может, плохо ищу) какое-либо руководство по настройке на нём мультисайта... Могли бы вы хотя бы кратко описать процесс создания сайта или кинуть нужную ссылку? )

Аватар пользователя adano adano 17 ноября 2019 в 13:44

Прекрасно все работает на "ядренном" мультисайте... ГОДАМИ
+ всю вашу архитектуру можно спокойно разделить/объединить, без потери проекта/ов.

А 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/

Аватар пользователя Alexey_Qi Alexey_Qi 17 ноября 2019 в 15:30

Ну, тут, конечно же, всё зависит от задачи... Я сейчас вот поставил DA, посмотрел.... Очень хорошее решение, но мне тот, который вы назвали "ядрёным", больше подходит - потенциально в нём свободы больше (я так предполагаю)..)...
Но есть пока нерешённые проблемы...

Расшарил таблицы:
'users'
'sessions'
'role'
'authmap'.

Создал общий кеш, единый вход прекрасно работает...

Ещё расшарил
'users_data'
'users_field_data',
теперь пользователи отображаются на всех сайтах, видно у кого какая роль...

А вот картинку для пользователей общую на всех сайтах сделать не получается... У разных авторов в примерах присутствует таблица 'user__user_picture', но у меня почему-то не расшаривается (...

Еще там есть возможность добавлять пользователям поля для заполнения, это бы тоже сделать общим для всех сайтов...

Аватар пользователя Andruxa Andruxa 17 ноября 2019 в 17:12

Вот при каждом добавлении поля - начнется беда, т.к. каждое поле - это 2 таблицы в БД: с текущими значениями и с ревизиями (даже если они отключены). И если добавить поле на одном из сайтов, то в базах других сайтов таблицы не создадутся, а дальше все зависит от того, являются ли таблицы с настройками полей общими. Скорее всего, они должны быть общими, т.к. некоторые поля надо делать общими на разных сайтах, иначе зачем тогда вообще объединять их.
Так вот, при добавлении поля на одном из сайтов, в его базе будут созданы таблицы этого поля, и в общие таблицы с конфигами полей будет добавлена запись об этом поле. Соответственно, все остальные сайты будут считать, что такое поле есть, но его таблиц у себя не найдут, и будут выдавать ошибку PDO.
То есть, перед добавлением такого общего поля, сначала надо будет не забыть добавить инфу о его таблицах в settings.php.
Это я по памяти сейчас пишу как было в семерке, в восьмерке примерно так же получится.