function search_api_solr_update_8300 in Search API Solr 4.x
Same name and namespace in other branches
- 8.3 search_api_solr.install \search_api_solr_update_8300()
Migrate Solr backends to the new unified Solr backend.
File
- ./
search_api_solr.install, line 764 - Install, update and uninstall functions for the Search API Solr module.
Code
function search_api_solr_update_8300() {
$config_factory = \Drupal::configFactory();
foreach ($config_factory
->listAll('search_api_solr.solr_field_type.m_') as $field_type_name) {
$config_factory
->getEditable($field_type_name)
->delete();
}
foreach (search_api_solr_update_helper_get_field_type_configs() as $field_type_name => $field_type_config) {
unset($field_type_config['managed_schema']);
search_api_solr_update_helper_save_field_type_config($field_type_name, $field_type_config);
}
foreach ($config_factory
->listAll('search_api.server.') as $server_name) {
$server = $config_factory
->getEditable($server_name);
$backend_config = $server
->get('backend_config');
switch ($server
->get('backend')) {
case 'search_api_solr':
$backend_config['sasm_limit_search_page_to_content_language'] = FALSE;
$backend_config['sasm_search_page_include_language_independent'] = TRUE;
break;
case 'search_api_solr_multilingual':
case 'search_api_solr_multilingual_managed_schema':
unset($backend_config['sasm_language_unspecific_fallback_on_schema_issues']);
$server
->set('backend', 'search_api_solr');
break;
case 'search_api_solr_any_schema':
$backend_config['sasm_limit_search_page_to_content_language'] = FALSE;
$backend_config['sasm_search_page_include_language_independent'] = TRUE;
$server
->set('backend', 'search_api_solr');
break;
default:
continue 2;
}
$dependencies = $server
->get('dependencies');
$dependencies['module'] = [
'search_api_solr',
];
$server
->set('backend_config', $backend_config)
->set('dependencies', $dependencies)
->save(TRUE);
}
foreach ($config_factory
->listAll('search_api.index.') as $index_name) {
$index = $config_factory
->getEditable($index_name);
$field_settings = $index
->get('field_settings');
foreach ($field_settings as &$field_setting) {
if ('solr_string_doc_values' === $field_setting['type']) {
$field_setting['type'] = 'string';
}
}
$index
->set('field_settings', $field_settings)
->save(TRUE);
}
}