Quantcast
Channel: Recent posts across whole site
Viewing all articles
Browse latest Browse all 49197

Multisite Database Configuration Example

$
0
0

Okay, since i'm busy creating a fairly heavy multisite (W.I.P.) let me share some research i've done about shared database tables etc.

We're starting with a multisite that has different content on each site, but are using the same userbase for each site, we're operating from a single database
We're starting from the drupal core essentials perspective, meaning we start with no modules enabled besides drupal required core.

Database Tables:

seeing that drupal has 40 database tables, it can take some time to understand the implications of each table

  • access - you probaly want this table shared, since this is your access rules table, altrough seperation is possible if you want your content-admins to manage this. (but if you ban a person, you probaly want to ban him all over your multi-site.)
  • authmap - more info needed
  • blocks - this is a table you want to seperate, since every multisite (and theme) can have a different block setting and this table is NOT multisite aware
  • blocks_roles - more info needed
  • boxes - more info needed
  • cache & cache_* - Keep this set of tables sepeate, since different sites can have different contents cached and those tables are NOT multisite aware, also seperation leads to a smaller cache (per-site) meaning faster response.
  • Comments - keep this table seperated, since comment are content specific and each site can have different contents and this table is NOT multisite aware
  • boxes - more info needed
  • files & file_revisions - you want these seperated because attached files are content specific and each site can have different contents and those tables are NOT multisite aware
  • filters - You probaly want to share this table, since this hold only the combinations of filter that make up the formats
  • filter_formats - You probaly want to share this table, since the only thing stored here is which filter formats are availble for the sites and which roles can use them.
  • flood - more info needed
  • history - more info needed
  • menu - simple, seperate, since different sites have different layout, and this table is NOT multisite aware
  • node - simple, seperate, since different sites have different content and this table is NOT multisite aware
  • node_* - more info needed
  • permission & role - you probaly want this shared, since this way similar roles behave similar on all sites
  • sequences - this table MUST BE SHARED since this table tracks all tables including shared tables and this table IS multisite aware
  • sessions - as far as i can see, you can safely share this table. more info needed (there are modules that require this table shared.)
  • system - This table MUST BE SEPERATED since it consist of site specific settings (enabled modules etc.)
  • users - this table is shared... doh, that's the whole point here...
  • term_* - more info needed
  • Url_alias - you want this table seperated, since different sites can have similar alias to different content, and this table is NOT multisite aware, also speeds up site if seperated.
  • Users_roles - This table is seperated because different users can have different functions on different sites and this table is NOT multisite aware
  • Variable - This table MUST BE SEPERATED since it consist of site specific settings (sitename, slogan etc.)
  • Vocabulary & Vocabulary_node_type- more info needed
  • Watchdog - depends on your likings, suggesting to seperate but can be shared since this table IS multisite aware

 

a quick recap, the following tables are shared:

  • access
  • filters
  • filter_formats
  • permission
  • role
  • sequences
  • sessions
  • users

 

Near-Required Modules

I would suggest to install always the following modules on any multisite config:

  • Single Sign-On - Logs you in in all sites at the same time
  • Paranoia - disallowes PHP usage in content etc.

Viewing all articles
Browse latest Browse all 49197

Trending Articles