Fix migration script to remove old date fields and after creating new ones

1.10.x
Yannick Warnier 11 years ago
parent 77d02635b4
commit 35ae772017
  1. 18
      src/Chamilo/CoreBundle/Migrations/Schema/V110/Version20150528103216.php

@ -34,6 +34,11 @@ class Version20150528103216 extends AbstractMigrationChamilo
$this->addSql('UPDATE session SET display_start_date = access_start_date'); $this->addSql('UPDATE session SET display_start_date = access_start_date');
$this->addSql('UPDATE session SET display_end_date = access_end_date'); $this->addSql('UPDATE session SET display_end_date = access_end_date');
$this->addSql('ALTER TABLE session DROP date_start');
$this->addSql('ALTER TABLE session DROP date_end');
$this->addSql('ALTER TABLE session DROP nb_days_access_before_beginning');
$this->addSql('ALTER TABLE session DROP nb_days_access_after_end');
} }
/** /**
@ -41,6 +46,19 @@ class Version20150528103216 extends AbstractMigrationChamilo
*/ */
public function down(Schema $schema) public function down(Schema $schema)
{ {
$this->addSql('ALTER TABLE session CREATE date_start date NOT NULL');
$this->addSql('ALTER TABLE session CREATE date_end date NOT NULL');
$this->addSql('ALTER TABLE session CREATE nb_days_access_before_beginning TINYINT');
$this->addSql('ALTER TABLE session CREATE nb_days_access_after_end TINYINT');
$this->addSql('UPDATE session SET date_start = access_start_date');
$this->addSql('UPDATE session SET date_end = access_end_date');
$this->addSql('UPDATE session SET nb_days_access_before_beginning = DATEDIFF(access_start_date, coach_access_start_date) WHERE access_start_date != coach_access_start_date AND coach_access_start_date IS NOT NULL');
$this->addSql('UPDATE session SET nb_days_access_after_end = DATEDIFF(coach_access_end_date, coach_access_end_date) WHERE access_end_date != coach_access_end_date AND coach_access_end_date IS NOT NULL');
$this->addSql('UPDATE session SET nb_days_access_before_beginning = 0 WHERE access_start_date = coach_access_start_date OR coach_access_start_date IS NULL');
$this->addSql('UPDATE session SET nb_days_access_after_end = 0 WHERE access_end_date = coach_access_end_date OR coach_access_end_date IS NULL');
$this->addSql('ALTER TABLE session DROP access_start_date'); $this->addSql('ALTER TABLE session DROP access_start_date');
$this->addSql('ALTER TABLE session DROP access_end_date'); $this->addSql('ALTER TABLE session DROP access_end_date');
$this->addSql('ALTER TABLE session DROP coach_access_start_date'); $this->addSql('ALTER TABLE session DROP coach_access_start_date');

Loading…
Cancel
Save