This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Upgrade path (Developer Reference)

Technical reference for developers working with configuration updates and hook_update_N.

    This page provides technical reference for developers implementing configuration updates. For site administrators managing upgrades, see the Upgrade Tool documentation.


    All changes in configurations should be added to appropriate hook_update_N in order to update already existing environments. We suggest to use https://www.drupal.org/project/confi for working with hook_update_N.

    openy.install in profile

    In this file we should put updates that are related to the distribution in general and don’t fit into any feature.

    • Enable/Disable module
    • General configs

    openy_*.install in modules

    In case if you update some configuration for specific feature, make sure that you put updates into appropriate module.

    Revert only specific property from config

    With config_import module help we can update only part from full config.

    For updating specific property in config (use service ‘openy_upgrade_tool.param_updater’):

    1. go to related to this config module

    2. create new hook_update_N in openy_*.install file

    3. in update add next code (this is example):

    $config = drupal_get_path('module', 'openy_media_image') . '/config/install/views.view.images_library.yml';
    $config_importer = \Drupal::service('openy_upgrade_tool.param_updater');
    $config_importer->update($config, 'views.view.images_library', 'display.default.display_options.pager');
    

    Where:

    • $config variable contains path to config with config name
    • “views.view.images_library” - config name
    • “display.default.display_options.pager” - config specific property (you can set value from a nested array with variable depth)

    Revert full configs

    For updating full config or several configs from directory use service ‘openy_upgrade_tool.importer’.

    $config_dir = drupal_get_path('module', 'openy_media_image') . '/config/install';
    $config_importer = \Drupal::service('openy_upgrade_tool.importer');
    $config_importer->setDirectory($config_dir);
    $config_importer->importConfigs(['views.view.images_library']);
    

    Where:

    • $config_dir - path to directory with config
    • “views.view.images_library” - config name

    Also you can update several configs from directory:

    $config_importer->importConfigs([
      'views.view.images_library',
      'views.view.example_view',
    ]);