From 024e9abf38f4c72566ff37bc0c1a1d3637fe632e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Mon, 18 Dec 2017 14:57:25 +0100 Subject: Added index on entry table for given_url field --- app/DoctrineMigrations/Version20171218135243.php | 65 ++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 app/DoctrineMigrations/Version20171218135243.php diff --git a/app/DoctrineMigrations/Version20171218135243.php b/app/DoctrineMigrations/Version20171218135243.php new file mode 100644 index 00000000..7b3fc666 --- /dev/null +++ b/app/DoctrineMigrations/Version20171218135243.php @@ -0,0 +1,65 @@ +container = $container; + } + + /** + * @param Schema $schema + */ + public function up(Schema $schema) + { + $entryTable = $schema->getTable($this->getTable('entry')); + $this->skipIf($entryTable->hasIndex($this->indexGivenUrl), 'It seems that you already played this migration.'); + + switch ($this->connection->getDatabasePlatform()->getName()) { + case 'sqlite': + $sql = 'CREATE UNIQUE INDEX ' . $this->indexGivenUrl . ' ON ' . $this->getTable('entry') . ' (url, given_url, user_id);'; + break; + case 'mysql': + $sql = 'CREATE INDEX ' . $this->indexGivenUrl . ' ON ' . $this->getTable('entry') . ' (url (255), given_url (255), user_id);'; + break; + case 'postgresql': + $sql = 'CREATE INDEX ' . $this->indexGivenUrl . ' ON ' . $this->getTable('entry') . ' (url, given_url, user_id);'; + break; + } + + $this->addSql($sql); + } + + /** + * @param Schema $schema + */ + public function down(Schema $schema) + { + $entryTable = $schema->getTable($this->getTable('entry')); + $this->skipIf(false === $entryTable->hasIndex($this->indexGivenUrl), 'It seems that you already played this migration.'); + + $entryTable->dropIndex($this->indexGivenUrl); + } + + private function getTable($tableName) + { + return $this->container->getParameter('database_table_prefix') . $tableName; + } +} -- cgit v1.2.3