diff --git a/app/Migrations/Schema/V110/Version110.php b/app/Migrations/Schema/V110/Version110.php index 07558fe3c8..4b16563620 100644 --- a/app/Migrations/Schema/V110/Version110.php +++ b/app/Migrations/Schema/V110/Version110.php @@ -153,7 +153,9 @@ class Version110 extends AbstractMigrationChamilo $this->addSql("ALTER TABLE session_rel_course ADD COLUMN category varchar(255) default ''"); $this->addSql("ALTER TABLE session_rel_course ADD COLUMN c_id int unsigned"); $this->addSql("ALTER TABLE session_rel_course CHANGE id_session session_id int"); + $this->addSql('DELETE FROM session_rel_course WHERE session_id NOT IN (SELECT id FROM session)'); + $this->addSql("DELETE course_rel_user WHERE course_code NOT IN (SELECT code FROM course)"); $this->addSql("UPDATE course_rel_user SET c_id = (SELECT id FROM course WHERE code = course_code)"); // Add iid @@ -417,6 +419,7 @@ class Version110 extends AbstractMigrationChamilo $this->addSql("ALTER TABLE session_rel_user CHANGE id_session session_id int"); $this->addSql("ALTER TABLE session_rel_user CHANGE id_user user_id int"); + $this->addSql("DELETE FROM session_rel_user WHERE user_id NOT IN (SELECT user_id FROM user)"); $this->addSql("ALTER TABLE session_rel_user ADD COLUMN id int NOT NULL PRIMARY KEY AUTO_INCREMENT"); $this->addSql("ALTER TABLE c_item_property CHANGE id_session session_id int"); @@ -511,8 +514,10 @@ class Version110 extends AbstractMigrationChamilo $this->addSql("UPDATE track_e_attempt SET c_id = (SELECT id FROM course WHERE code = course_code)"); $this->addSql("UPDATE course_field_values SET c_id = (SELECT id FROM course WHERE code = course_code)"); $this->addSql("UPDATE session_rel_course_rel_user SET c_id = (SELECT id FROM course WHERE code = course_code)"); + $this->addSql('DELETE FROM session_rel_course WHERE course_code NOT IN (SELECT code FROM course)'); $this->addSql("UPDATE session_rel_course SET c_id = (SELECT id FROM course WHERE code = course_code)"); + $this->addSql("DELETE access_url_rel_course WHERE course_code NOT IN (SELECT code FROM course)"); $this->addSql("UPDATE access_url_rel_course SET c_id = (SELECT id FROM course WHERE code = course_code)"); $this->addSql("ALTER TABLE settings_current DROP INDEX unique_setting"); diff --git a/app/Migrations/Schema/V110/Version20150603181728.php b/app/Migrations/Schema/V110/Version20150603181728.php index 632a462a28..b0d5e839df 100644 --- a/app/Migrations/Schema/V110/Version20150603181728.php +++ b/app/Migrations/Schema/V110/Version20150603181728.php @@ -49,9 +49,9 @@ class Version20150603181728 extends AbstractMigrationChamilo MODIFY session_id INT DEFAULT NULL, MODIFY to_user_id INT NULL '); - $this->addSql("UPDATE c_item_property SET session_id = NULL WHERE session_id = 0"); - $this->addSql("UPDATE c_item_property SET to_group_id = NULL WHERE to_group_id = 0"); - $this->addSql("UPDATE c_item_property SET to_user_id = NULL WHERE to_user_id = 0"); + $this->addSql("UPDATE c_item_property SET session_id = NULL WHERE session_id NOT IN (SELECT id FROM session)"); + $this->addSql("UPDATE c_item_property SET to_group_id = NULL WHERE to_group_id NOT IN (SELECT iid FROM c_group_info)"); + $this->addSql("UPDATE c_item_property SET to_user_id = NULL WHERE to_user_id NOT IN (SELECT user_id FROM user)"); $this->addSql("UPDATE c_item_property SET start_visible = NULL WHERE start_visible = '0000-00-00 00:00:00'"); $this->addSql("UPDATE c_item_property SET end_visible = NULL WHERE end_visible = '0000-00-00 00:00:00'"); $this->addSql("UPDATE c_item_property SET to_user_id = NULL WHERE to_user_id NOT IN (SELECT id FROM user)"); @@ -59,9 +59,9 @@ class Version20150603181728 extends AbstractMigrationChamilo $this->addSql("UPDATE c_item_property SET session_id = NULL WHERE session_id NOT IN (SELECT id FROM session)"); // Remove inconsistencies about non-existing courses - $this->addSql("DELETE FROM c_item_property WHERE c_id = 0"); + $this->addSql("DELETE FROM c_item_property WHERE c_id NOT IN (SELECT user_id FROM user)"); // Remove inconsistencies about non-existing users - $this->addSql("DELETE FROM course_rel_user WHERE user_id = 0"); + $this->addSql("DELETE FROM course_rel_user WHERE user_id NOT IN (SELECT user_id FROM user)"); $this->addSql("DELETE FROM c_item_property WHERE c_id NOT IN (SELECT id FROM course)"); $this->addSql("DELETE FROM c_item_property WHERE to_group_id NOT IN (SELECT id FROM c_group_info)"); diff --git a/app/Migrations/Schema/V110/Version20151101082200.php b/app/Migrations/Schema/V110/Version20151101082200.php index 9d4b669048..a140f6a97b 100644 --- a/app/Migrations/Schema/V110/Version20151101082200.php +++ b/app/Migrations/Schema/V110/Version20151101082200.php @@ -29,7 +29,7 @@ class Version20151101082200 extends AbstractMigrationChamilo $this->addSql("ALTER TABLE session_rel_course_rel_user DROP PRIMARY KEY"); $this->addSql("ALTER TABLE session MODIFY session_category_id INT NULL"); - $this->addSql("UPDATE session SET session_category_id = NULL WHERE session_category_id = 0"); + $this->addSql("UPDATE session SET session_category_id = NULL WHERE session_category_id NOT IN (SELECT id FROM session_category)"); } /** diff --git a/app/Migrations/Schema/V110/Version20151101082300.php b/app/Migrations/Schema/V110/Version20151101082300.php index 32e35854cb..476ad1edc4 100644 --- a/app/Migrations/Schema/V110/Version20151101082300.php +++ b/app/Migrations/Schema/V110/Version20151101082300.php @@ -20,6 +20,8 @@ class Version20151101082300 extends AbstractMigrationChamilo $accessUrl = $schema->getTable('access_url'); $accessUrl->getColumn('id')->setUnsigned(false); + $this->connection->executeQuery('UPDATE access_url_rel_course SET access_url_id = NULL WHERE access_url_id NOT IN (SELECT id FROM access_url)'); + $accessUrlRelCourse = $schema->getTable('access_url_rel_course'); $accessUrlRelCourse->getColumn('access_url_id')->setUnsigned(false); $accessUrlRelCourse->addForeignKeyConstraint('access_url', ['access_url_id'], ['id']); @@ -223,6 +225,8 @@ class Version20151101082300 extends AbstractMigrationChamilo $session->addForeignKeyConstraint('session_category', ['session_category_id'], ['id']); $session->addForeignKeyConstraint('user', ['id_coach'], ['id']); + $this->connection->executeQuery('UPDATE session_category SET access_url_id = 1 WHERE access_url_id NOT IN (SELECT id FROM access_url)'); + $sessionCategory = $schema->getTable('session_category'); $sessionCategory->addIndex(['access_url_id']); $sessionCategory->addForeignKeyConstraint('access_url', ['access_url_id'], ['id']); @@ -237,6 +241,10 @@ class Version20151101082300 extends AbstractMigrationChamilo $sessionRelCourse->addForeignKeyConstraint('course', ['c_id'], ['id']); $sessionRelCourse->addForeignKeyConstraint('session', ['session_id'], ['id']); + $this->connection->executeQuery('DELETE FROM session_rel_course_rel_user WHERE c_id NOT IN (SELECT id FROM course)'); + $this->connection->executeQuery('DELETE FROM session_rel_course_rel_user WHERE session_id NOT IN (SELECT id FROM session)'); + $this->connection->executeQuery('DELETE FROM session_rel_course_rel_user WHERE user_id NOT IN (SELECT id FROM user)'); + $sessionRelCourseRelUser = $schema->getTable('session_rel_course_rel_user'); $sessionRelCourseRelUser->dropColumn('course_code'); $sessionRelCourseRelUser->addColumn('id', Type::INTEGER)->setAutoincrement(true); @@ -248,11 +256,13 @@ class Version20151101082300 extends AbstractMigrationChamilo $sessionRelCourseRelUser->addForeignKeyConstraint('session', ['session_id'], ['id']); $sessionRelCourseRelUser->addForeignKeyConstraint('user', ['user_id'], ['id']); + $this->connection->executeQuery('DELETE FROM session_rel_user WHERE user_id NOT IN (SELECT id FROM user)'); + $this->connection->executeQuery('DELETE FROM session_rel_user WHERE session_id NOT IN (SELECT id FROM session)'); + $sessionRelUser = $schema->getTable('session_rel_user'); $sessionRelUser->addColumn('moved_to', Type::INTEGER)->setNotnull(false); $sessionRelUser->addColumn('moved_status', Type::INTEGER)->setNotnull(false); $sessionRelUser->addColumn('moved_at', Type::DATETIME)->setNotnull(false); - $sessionRelUser->addIndex(['session_id']); $sessionRelUser->addIndex(['user_id']); $sessionRelUser->addIndex(['user_id', 'moved_to']); @@ -283,6 +293,9 @@ class Version20151101082300 extends AbstractMigrationChamilo $schema->getTable('track_e_uploads')->addIndex(['c_id']); $schema->getTable('user')->addUniqueIndex(['username_canonical']); + $this->connection->executeQuery('DELETE FROM usergroup_rel_user WHERE user_id NOT IN (SELECT id FROM user)'); + $this->connection->executeQuery('DELETE FROM usergroup_rel_user WHERE usergroup_id NOT IN (SELECT id FROM usergroup)'); + $usergroupRelUSer = $schema->getTable('usergroup_rel_user'); $usergroupRelUSer->addIndex(['user_id']); $usergroupRelUSer->addIndex(['usergroup_id']); diff --git a/app/Migrations/Schema/V111/Version111.php b/app/Migrations/Schema/V111/Version111.php deleted file mode 100644 index 24f731d471..0000000000 --- a/app/Migrations/Schema/V111/Version111.php +++ /dev/null @@ -1,39 +0,0 @@ -addSql(""); - } - - /** - * @param Schema $schema - */ - public function postUp(Schema $schema) - { - } - - /** - * @param Schema $schema - */ - public function down(Schema $schema) - { - } -}