. */ namespace Fisharebest\Webtrees\Schema; use Fisharebest\Webtrees\Database; /** * Upgrade the database schema from version 5 to version 6. */ class Migration5 implements MigrationInterface { /** * Upgrade to to the next version */ public function upgrade() { // Changes to the values for the gedcom setting SHOW_RELATIVES_EVENTS $settings = Database::prepare("SELECT gedcom_id, setting_value FROM `##gedcom_setting` WHERE setting_name='SHOW_RELATIVES_EVENTS'")->fetchAssoc(); foreach ($settings as $gedcom_id => $setting) { // Delete old settings $setting = preg_replace('/_(BIRT|MARR|DEAT)_(COUS|MSIB|FSIB|GGCH|NEPH|GGPA)/', '', $setting); $setting = preg_replace('/_FAMC_(RESI_EMIG)/', '', $setting); // Rename settings $setting = preg_replace('/_MARR_(MOTH|FATH|FAMC)/', '_MARR_PARE', $setting); $setting = preg_replace('/_DEAT_(MOTH|FATH)/', '_DEAT_PARE', $setting); // Remove duplicates preg_match_all('/[_A-Z]+/', $setting, $match); // And save Database::prepare( "UPDATE `##gedcom_setting`" . " SET setting_value = :setting_value" . " WHERE gedcom_id = :tree_id AND setting_name = 'SHOW_RELATIVES_EVENTS'" )->execute([ 'tree_id' => $gedcom_id, 'setting_value' => implode(',', array_unique($match[0])), ]); } } }