summaryrefslogtreecommitdiff
path: root/app/Schema/Migration37.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Schema/Migration37.php')
-rw-r--r--app/Schema/Migration37.php67
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();
}
}