3

Since Drupal 8 is days away from release, I've started experimenting with rebuilding my personal site on it. The one feature I am really looking forward to is configuration management in code.

Unfortunately, my taxonomy terms are not exported by the config module. From what I've found googling on the subject, neither are menu items.

Which leaves me stumped. The natural way to set a sites structure (or information architecture) is a combination of content types, taxonomy vocabularies and their terms, and a set of menus. Or, at least, that seems to be the natural way to me.

While googling, I could not find any discussion on this subject.

So, how do I export the taxonomy terms and menu items that define my sites structure?

Edit to add some details:

Assume the site is a magazine. It has Fiction, World Events, Technical, and Letters sections. There will always be a /fiction, a /world-events, a /technical, and a /letters menu items. There are several kinds of content types, each can go into various sections.

So I create a vocabulary for the sections.

sections
- fiction
- world events
- technical
- letters

A taxonomy reference field is added to each content type.

Thus, when content is created it is tagged with the appropriate section terms.

If the site deploys without one of those sections, it is broken. Thus the menu items, and taxonomy terms should be considered configuration. Not content.

From what I've read, the main problem is that terms and menu items can collide if you try to move them between instances. Terms have a incrementing tid. Menu items also have an incrementing id. Though I do see the taxonomy_term_data and menu_link_content tables which seem to map uuid's with term and menu item ids. So, couldn't that be used to make exporting them feasible?

Also, isn't one of the main uses cases for taxonomies defining a site's structure?

I guess what I'm stuck on is that some menu items and some taxonomy terms really should be considered as configuration, not data. As in, if I were coding this instead of using Drupal, I'd hard code them. Thus, they should be exportable so that they can be committed to version control.

And that's why I'm asking "How do I export my site structure?"

1

For install content, you can use Default Content for D8 (also on GitHub). For ongoing content syncing Entity Pilot is expected to enter public beta this week and there is an active initiative around Deploy module.

Disclaimer: Entity Pilot is my project.

  • I haven't tried it yet, but default_content seems like the closest we can get to what I want right now. So I'll accept this answer. If anyone ever makes a module that lets you select content and force config to export it, let me know. :) – David R. Dec 3 '15 at 18:36
0

For a deployment that you are planing, you should use features, that packs it all into a module. To add menus you can use yml-files and basic content like taxonomy terms can be added in module_install(). Or wait until UUID Features is ported to drupal 8.

  • I was hoping to avoid using features for configuration... Since features should be packages of functionality that can apply to many sites. What I'd really like is an option that has the effect of changing "content" into "config" so that the config module exports it. That said, I likely will have to use features to get what I want... – David R. Nov 9 '15 at 16:58
0

Managing configuration in Drupal 8 states:

The Configuration Manager module in Drupal 8 provides a user interface for importing and exporting configuration changes between a Drupal installation in different environments, such as Development, Staging and Production, so you can make and verify your changes with a comfortable distance from your live environment.

You can import, export, and synchronize configuration in your site via Manage > Configuration > Configuration Synchronization (admin/config/development/configuration).

Aparently it supports many types, including taxonomy and menus:

enter image description here

  • Supports menus, but not menu items. Menu without menu items is kind of useless :( – SiliconMind Apr 21 '16 at 16:00
  • Yes, menu items are content, and therefore not export through configuration. – Filipe Miguel Fonseca Apr 22 '16 at 9:15
  • 2
    Technically menu items aren't content nor configuration. They don't inherit from ContentEntityBase and they don't implement ContentEntityInferace - so they aren't content. They also aren't configuration. Which really sucks as you have to treat them in a special way. – SiliconMind Apr 22 '16 at 12:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.