diff options
Diffstat (limited to 'app/Schema/Migration37.php')
| -rw-r--r-- | app/Schema/Migration37.php | 67 |
1 files changed, 10 insertions, 57 deletions
diff --git a/app/Schema/Migration37.php b/app/Schema/Migration37.php index 97c54e3f51..b64450eb8a 100644 --- a/app/Schema/Migration37.php +++ b/app/Schema/Migration37.php @@ -25,65 +25,18 @@ class Migration37 implements MigrationInterface { * Upgrade to to the next version */ public function upgrade() { - // Move repositories to their own table - Database::exec( - "CREATE TABLE IF NOT EXISTS `##repository` (" . - " repository_id INTEGER AUTO_INCREMENT NOT NULL," . - " gedcom_id INTEGER NOT NULL," . - " xref VARCHAR(20) NOT NULL," . - " gedcom LONGTEXT NOT NULL," . - " name VARCHAR(90) NOT NULL," . - " address VARCHAR(255) NOT NULL," . - " restriction ENUM('', 'confidential', 'privacy', 'none') NOT NULL," . - " uid VARCHAR(34) NOT NULL," . - " changed_at DATETIME NOT NULL," . - " PRIMARY KEY (repository_id)," . - " UNIQUE KEY `##repository_ix1` (gedcom_id, xref)," . - " UNIQUE KEY `##repository_ix2` (xref, gedcom_id)," . - " KEY `##repository_ix3` (name)," . - " KEY `##repository_ix4` (address)," . - " KEY `##repository_ix5` (restriction)," . - " KEY `##repository_ix6` (uid)," . - " KEY `##repository_ix7` (changed_at)," . - " CONSTRAINT `##repository_fk1` FOREIGN KEY (gedcom_id) REFERENCES `##gedcom` (gedcom_id)" . - ") COLLATE utf8_unicode_ci ENGINE=InnoDB" - ); - Database::exec("START TRANSACTION"); + Database::prepare( + "INSERT INTO `##site_setting` (setting_name, setting_value)" . + " SELECT 'next_xref', MAX(next_id) FROM `##next_id`" + )->execute(); - $repositories = Database::prepare("SELECT * FROM `##other` WHERE o_type = 'REPO'")->fetchAll(); + Database::prepare( + "DELETE FROM `##gedcom_setting` WHERE setting_name in ('FAM_ID_PREFIX', 'GEDCOM_ID_PREFIX', 'MEDIA_ID_PREFIX', 'NOTE_ID_PREFIX', 'REPO_ID_PREFIX', 'SOURCE_ID_PREFIX')" + )->execute(); - foreach ($repositories as $n => $repository) { - Database::prepare( - "INSERT INTO `##repository` (" . - " gedcom_id, xref, gedcom, name, address, restriction, uid, changed_at" . - ") VALUES (" . - " :gedcom_id, :xref, :gedcom, :name, :address, :restriction, :uid, :changed_at" . - ")" - )->execute([ - 'gedcom_id' => $repository->o_file, - 'xref' => $repository->o_id, - 'gedcom' => $repository->o_gedcom, - 'name' => '', - 'address' => '', - 'restriction' => '', - 'uid' => '', - 'changed_at' => '', - ]); - - Database::prepare( - "DELETE FROM `##other` WHERE o_file = :gedcom_id AND o_id = :xref" - )->execute([ - 'gedcom_id' => $repository->o_file, - 'xref' => $repository->o_id, - ]); - - if ($n % 500 === 499) { - Database::exec("COMMIT"); - Database::exec("START TRANSACTION"); - } - } - - Database::exec("COMMIT"); + Database::prepare( + "DROP TABLE IF EXISTS `##next_id`" + )->execute(); } } |
