. */ namespace Fisharebest\Webtrees\Schema; use Fisharebest\Webtrees\Database; use Fisharebest\Webtrees\Tree; /** * Upgrade the database schema from version 5 to version 5. */ 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 Tree::findById($gedcom_id)->setPreference('SHOW_RELATIVES_EVENTS', implode(',', array_unique($match[0]))); } } }