From 12f7921a627cb80b3c7e3368688969083ec2cbda Mon Sep 17 00:00:00 2001 From: jmontoyaa Date: Fri, 14 Oct 2016 13:25:25 +0200 Subject: [PATCH] Fix migration errors --- app/Migrations/Schema/V111/Version111.php | 1 - .../Schema/V111/Version20160304151300.php | 2 +- .../Schema/V111/Version20160706182000.php | 2 +- .../Schema/V111/Version20160930144400.php | 2 + main/install/install.lib.php | 55 ++++++++----------- 5 files changed, 27 insertions(+), 35 deletions(-) diff --git a/app/Migrations/Schema/V111/Version111.php b/app/Migrations/Schema/V111/Version111.php index 13390b28be..a72e9ba243 100644 --- a/app/Migrations/Schema/V111/Version111.php +++ b/app/Migrations/Schema/V111/Version111.php @@ -314,7 +314,6 @@ class Version111 extends AbstractMigrationChamilo $this->addSql('DELETE FROM settings_options WHERE variable = "visio_use_rtmpt"'); $this->addSql('DELETE FROM course_module WHERE name = "conference"'); $this->addSql('ALTER TABLE c_student_publication_assignment CHANGE add_to_calendar add_to_calendar INT NOT NULL;'); - $this->addSql('ALTER TABLE extra_field ADD visible_to_others TINYINT(1) DEFAULT 0, CHANGE visible visible_to_self TINYINT(1) DEFAULT 0'); } /** diff --git a/app/Migrations/Schema/V111/Version20160304151300.php b/app/Migrations/Schema/V111/Version20160304151300.php index 7cf90edf5f..592afe559c 100644 --- a/app/Migrations/Schema/V111/Version20160304151300.php +++ b/app/Migrations/Schema/V111/Version20160304151300.php @@ -26,6 +26,6 @@ class Version20160304151300 extends AbstractMigrationChamilo */ public function down(Schema $schema) { - + } } diff --git a/app/Migrations/Schema/V111/Version20160706182000.php b/app/Migrations/Schema/V111/Version20160706182000.php index 5c1db18a88..836f1df068 100644 --- a/app/Migrations/Schema/V111/Version20160706182000.php +++ b/app/Migrations/Schema/V111/Version20160706182000.php @@ -24,7 +24,7 @@ class Version20160706182000 extends AbstractMigrationChamilo { $this->addSql( 'CREATE TABLE course_rel_user_catalogue (id int NOT NULL AUTO_INCREMENT, user_id int DEFAULT NULL, c_id int DEFAULT NULL, visible int NOT NULL, PRIMARY KEY (id), KEY (user_id), KEY (c_id), CONSTRAINT FOREIGN KEY (c_id) REFERENCES course (id) ON DELETE CASCADE, CONSTRAINT FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci' - ); + ); } /** diff --git a/app/Migrations/Schema/V111/Version20160930144400.php b/app/Migrations/Schema/V111/Version20160930144400.php index 3ff485adb5..ef7886aac6 100644 --- a/app/Migrations/Schema/V111/Version20160930144400.php +++ b/app/Migrations/Schema/V111/Version20160930144400.php @@ -28,6 +28,8 @@ class Version20160930144400 extends AbstractMigrationChamilo h.hotspot_answer_id = qa.id ) '); + + $this->addSql('ALTER TABLE extra_field ADD visible_to_others TINYINT(1) DEFAULT 0, CHANGE visible visible_to_self TINYINT(1) DEFAULT 0'); } /** diff --git a/main/install/install.lib.php b/main/install/install.lib.php index 11fb5aadad..3ab091b070 100755 --- a/main/install/install.lib.php +++ b/main/install/install.lib.php @@ -2550,20 +2550,21 @@ function fixIds(EntityManager $em) error_log("Loading field: ".$field['field_variable']); } $originalId = $field['id']; - $extraField = new ExtraField(); - $extraField - ->setExtraFieldType($type) - ->setVariable($field['field_variable']) - ->setFieldType($field['field_type']) - ->setDisplayText($field['field_display_text']) - ->setDefaultValue($field['field_default_value']) - ->setFieldOrder($field['field_order']) - ->setVisibleToSelf($field['field_visible']) - ->setChangeable($field['field_changeable']) - ->setFilter($field['field_filter']); - - $em->persist($extraField); - $em->flush(); + + $params = [ + 'extra_field_type' => $type, + 'variable' => $field['field_variable'], + 'field_type' => $field['field_type'], + 'display_text' => $field['field_display_text'], + 'default_value' => $field['field_default_value'], + 'field_order' => $field['field_order'], + 'visible' => $field['field_visible'], + 'changeable' => $field['field_changeable'], + 'filter' => $field['field_filter'] + ]; + + $connection->insert('extra_field', $params); + $newExtraFieldId = $connection->lastInsertId(); $values = array(); $handlerId = null; @@ -2603,14 +2604,13 @@ function fixIds(EntityManager $em) $options = $result->fetchAll(); foreach ($options as $option) { - $extraFieldOption = new ExtraFieldOptions(); - $extraFieldOption - ->setDisplayText($option['option_display_text']) - ->setField($extraField) - ->setOptionOrder($option['option_order']) - ->setValue($option['option_value']); - $em->persist($extraFieldOption); - $em->flush(); + $params = [ + 'display_text' => $option['option_display_text'], + 'field_id' => $newExtraFieldId, + 'option_order' => $option['option_order'], + 'option_value' => $option['option_value'] + ]; + $connection->insert('extra_field_options', $params); } $sql = "SELECT * FROM $valueTable WHERE field_id = $originalId "; @@ -2628,19 +2628,10 @@ function fixIds(EntityManager $em) $k = 0; foreach ($values as $value) { if (isset($value[$handlerId])) { - /* - $extraFieldValue = new ExtraFieldValues(); - $extraFieldValue - ->setValue($value['field_value']) - ->setField($extraField) - ->setItemId($value[$handlerId]); - $em->persist($extraFieldValue); - $em->flush(); - */ // Insert without the use of the entity as it reduces // speed to 2 records per second (much too slow) $params = [ - 'field_id' => $extraField->getId(), + 'field_id' => $newExtraFieldId, 'value' => $value['field_value'], 'item_id' => $value[$handlerId] ];