Files
Chamilo/app/Migrations/Schema/V110/Version20151221150100.php
2025-04-10 12:53:50 +02:00

69 lines
2.8 KiB
PHP

<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Fix c_quiz_answer's correct field for id_auto
*/
class Version20151221150100 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql("ALTER TABLE c_quiz_answer ENGINE=InnoDB");
$this->addSql("ALTER TABLE c_quiz_question ENGINE=InnoDB");
$this->addSql("ALTER TABLE c_quiz_answer ADD INDEX idx_qa_question_id_temp (question_id)");
$this->addSql("ALTER TABLE c_quiz_answer ADD INDEX idx_qa_id_temp (id)");
$this->addSql("ALTER TABLE c_quiz_answer ADD INDEX idx_qa_correct_temp (correct)");
$this->addSql("ALTER TABLE track_e_attempt CHANGE tms tms datetime default null");
$this->addSql("UPDATE track_e_attempt SET tms = NULL WHERE tms = '0000-00-00 00:00:00'");
$this->addSql("ALTER TABLE track_e_attempt ADD INDEX idx_tea_answer_temp (answer(6))");
$this->addSql("ALTER TABLE c_quiz_question ADD INDEX idx_qq_id_temp (id)");
$this->addSql("ALTER TABLE c_quiz_question ADD INDEX idx_qq_type_temp (type)");
$this->addSql("
UPDATE track_e_attempt a
INNER JOIN c_quiz_answer qa
ON (a.question_id = qa.question_id AND a.c_id = qa.c_id)
INNER JOIN c_quiz_question q
ON (qa.question_id = q.id AND qa.c_id = q.c_id)
SET a.answer = qa.id_auto
WHERE
a.answer = qa.id AND
q.c_id = a.c_id AND
q.type IN (" . MATCHING . ", " . DRAGGABLE . ", " . MATCHING_DRAGGABLE . ")
");
$this->addSql("
UPDATE c_quiz_answer a
INNER JOIN c_quiz_answer b
ON (a.question_id = b.question_id AND b.c_id = a.c_id)
INNER JOIN c_quiz_question q
ON (b.question_id = q.id AND b.c_id = q.c_id)
SET a.correct = b.id_auto
WHERE
a.correct = b.id AND
q.c_id = a.c_id AND
q.type IN (" . MATCHING . ", " . DRAGGABLE . ", " . MATCHING_DRAGGABLE . ")
");
$this->addSql("ALTER TABLE c_quiz_answer DROP INDEX idx_qa_question_id_temp");
$this->addSql("ALTER TABLE c_quiz_answer DROP INDEX idx_qa_id_temp");
$this->addSql("ALTER TABLE c_quiz_answer DROP INDEX idx_qa_correct_temp");
$this->addSql("ALTER TABLE track_e_attempt DROP INDEX idx_tea_answer_temp");
$this->addSql("ALTER TABLE c_quiz_question DROP INDEX idx_qq_id_temp");
$this->addSql("ALTER TABLE c_quiz_question DROP INDEX idx_qq_type_temp");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}