]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - app/DoctrineMigrations/Version20161122203647.php
Add a real configuration for CS-Fixer
[github/wallabag/wallabag.git] / app / DoctrineMigrations / Version20161122203647.php
index ea2703b6b1f99c3447e9a05c7dfcbbb1a2ec73eb..ef08bd59d5f511f82e4acc38f63f7b54db05d6ae 100644 (file)
@@ -8,7 +8,7 @@ use Symfony\Component\DependencyInjection\ContainerAwareInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Methods and properties removed from `FOS\UserBundle\Model\User`
+ * Methods and properties removed from `FOS\UserBundle\Model\User`.
  *
  * - `$expired`
  * - `$credentialsExpired`
@@ -30,20 +30,17 @@ class Version20161122203647 extends AbstractMigration implements ContainerAwareI
         $this->container = $container;
     }
 
-    private function getTable($tableName)
-    {
-        return $this->container->getParameter('database_table_prefix') . $tableName;
-    }
-
     /**
      * @param Schema $schema
      */
     public function up(Schema $schema)
     {
-        $this->abortIf($this->connection->getDatabasePlatform()->getName() === 'sqlite', 'This up migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.');
+        $userTable = $schema->getTable($this->getTable('user'));
+
+        $this->skipIf(false === $userTable->hasColumn('expired') || false === $userTable->hasColumn('credentials_expired'), 'It seems that you already played this migration.');
 
-        $this->addSql('ALTER TABLE '.$this->getTable('user').' DROP expired');
-        $this->addSql('ALTER TABLE '.$this->getTable('user').' DROP credentials_expired');
+        $userTable->dropColumn('expired');
+        $userTable->dropColumn('credentials_expired');
     }
 
     /**
@@ -51,7 +48,16 @@ class Version20161122203647 extends AbstractMigration implements ContainerAwareI
      */
     public function down(Schema $schema)
     {
-        $this->addSql('ALTER TABLE '.$this->getTable('user').' ADD expired tinyint(1) NULL DEFAULT 0');
-        $this->addSql('ALTER TABLE '.$this->getTable('user').' ADD credentials_expired tinyint(1) NULL DEFAULT 0');
+        $userTable = $schema->getTable($this->getTable('user'));
+
+        $this->skipIf(true === $userTable->hasColumn('expired') || true === $userTable->hasColumn('credentials_expired'), 'It seems that you already played this migration.');
+
+        $userTable->addColumn('expired', 'smallint', ['notnull' => false]);
+        $userTable->addColumn('credentials_expired', 'smallint', ['notnull' => false]);
+    }
+
+    private function getTable($tableName)
+    {
+        return $this->container->getParameter('database_table_prefix') . $tableName;
     }
 }