diff options
-rw-r--r-- | app/DoctrineMigrations/Version20161104073720.php | 53 | ||||
-rw-r--r-- | src/Wallabag/CoreBundle/Entity/Entry.php | 6 | ||||
-rw-r--r-- | src/Wallabag/CoreBundle/Repository/EntryRepository.php | 2 |
3 files changed, 59 insertions, 2 deletions
diff --git a/app/DoctrineMigrations/Version20161104073720.php b/app/DoctrineMigrations/Version20161104073720.php new file mode 100644 index 00000000..16503b4b --- /dev/null +++ b/app/DoctrineMigrations/Version20161104073720.php | |||
@@ -0,0 +1,53 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Application\Migrations; | ||
4 | |||
5 | use Doctrine\DBAL\Migrations\AbstractMigration; | ||
6 | use Doctrine\DBAL\Schema\Schema; | ||
7 | use Symfony\Component\DependencyInjection\ContainerAwareInterface; | ||
8 | use Symfony\Component\DependencyInjection\ContainerInterface; | ||
9 | |||
10 | class Version20161104073720 extends AbstractMigration implements ContainerAwareInterface | ||
11 | { | ||
12 | /** | ||
13 | * @var ContainerInterface | ||
14 | */ | ||
15 | private $container; | ||
16 | |||
17 | public function setContainer(ContainerInterface $container = null) | ||
18 | { | ||
19 | $this->container = $container; | ||
20 | } | ||
21 | |||
22 | private function getTable($tableName) | ||
23 | { | ||
24 | return $this->container->getParameter('database_table_prefix') . $tableName; | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * @param Schema $schema | ||
29 | */ | ||
30 | public function up(Schema $schema) | ||
31 | { | ||
32 | switch ($this->connection->getDatabasePlatform()->getName()) { | ||
33 | case 'sqlite': | ||
34 | $this->addSql('CREATE INDEX `created_at` ON `'.$this->getTable('entry').'` (`created_at` DESC)'); | ||
35 | break; | ||
36 | |||
37 | case 'mysql': | ||
38 | $this->addSql('ALTER TABLE '.$this->getTable('entry').' ADD INDEX created_at (created_at);'); | ||
39 | break; | ||
40 | |||
41 | case 'postgresql': | ||
42 | $this->addSql('CREATE INDEX created_at ON '.$this->getTable('entry').' (created_at DESC)'); | ||
43 | } | ||
44 | } | ||
45 | |||
46 | /** | ||
47 | * @param Schema $schema | ||
48 | */ | ||
49 | public function down(Schema $schema) | ||
50 | { | ||
51 | |||
52 | } | ||
53 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php index dd0f7e67..f59c445f 100644 --- a/src/Wallabag/CoreBundle/Entity/Entry.php +++ b/src/Wallabag/CoreBundle/Entity/Entry.php | |||
@@ -19,7 +19,11 @@ use Wallabag\AnnotationBundle\Entity\Annotation; | |||
19 | * | 19 | * |
20 | * @XmlRoot("entry") | 20 | * @XmlRoot("entry") |
21 | * @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\EntryRepository") | 21 | * @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\EntryRepository") |
22 | * @ORM\Table(name="`entry`", options={"collate"="utf8mb4_unicode_ci", "charset"="utf8mb4"}) | 22 | * @ORM\Table( |
23 | * name="`entry`", | ||
24 | * options={"collate"="utf8mb4_unicode_ci", "charset"="utf8mb4"}, | ||
25 | * indexes={@ORM\Index(name="created_at", columns={"created_at"})} | ||
26 | * ) | ||
23 | * @ORM\HasLifecycleCallbacks() | 27 | * @ORM\HasLifecycleCallbacks() |
24 | * @Hateoas\Relation("self", href = "expr('/api/entries/' ~ object.getId())") | 28 | * @Hateoas\Relation("self", href = "expr('/api/entries/' ~ object.getId())") |
25 | */ | 29 | */ |
diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php index 14616d88..61be5220 100644 --- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php +++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php | |||
@@ -22,7 +22,7 @@ class EntryRepository extends EntityRepository | |||
22 | return $this->createQueryBuilder('e') | 22 | return $this->createQueryBuilder('e') |
23 | ->leftJoin('e.user', 'u') | 23 | ->leftJoin('e.user', 'u') |
24 | ->andWhere('u.id = :userId')->setParameter('userId', $userId) | 24 | ->andWhere('u.id = :userId')->setParameter('userId', $userId) |
25 | ->orderBy('e.id', 'desc') | 25 | ->orderBy('e.createdAt', 'desc') |
26 | ; | 26 | ; |
27 | } | 27 | } |
28 | 28 | ||