3 namespace Wallabag\CoreBundle\Doctrine\DBAL\Schema
;
5 use Doctrine\DBAL\Schema\PostgreSqlSchemaManager
;
6 use Doctrine\DBAL\Schema\Sequence
;
9 * This custom schema manager fix the PostgreSQL 10 problem.
11 * @see https://github.com/wallabag/wallabag/issues/3479
12 * @see https://github.com/doctrine/dbal/issues/2868
14 class CustomPostgreSqlSchemaManager
extends PostgreSqlSchemaManager
19 protected function _getPortableSequenceDefinition($sequence)
21 if ('public' !== $sequence['schemaname']) {
22 $sequenceName = $sequence['schemaname'] . '.' . $sequence['relname'];
24 $sequenceName = $sequence['relname'];
27 $query = 'SELECT min_value, increment_by FROM ' . $this->_platform
->quoteIdentifier($sequenceName);
29 // patch for PostgreSql >= 10
30 if ((float) ($this->_conn
->getWrappedConnection()->getServerVersion()) >= 10) {
31 $query = "SELECT min_value, increment_by FROM pg_sequences WHERE schemaname = 'public' AND sequencename = " . $this->_conn
->quote($sequenceName);
34 $data = $this->_conn
->fetchAll($query);
36 return new Sequence($sequenceName, $data[0]['increment_by'], $data[0]['min_value']);