addSql(sprintf('CREATE SEQUENCE IF NOT EXISTS %s OWNED BY %s.id', $sequence, $table)); $this->addSql(sprintf( 'SELECT setval(\'%s\', COALESCE((SELECT MAX(id) FROM %s), 0) + 1, false)', $sequence, $table, )); $this->addSql(sprintf( 'ALTER TABLE %s ALTER COLUMN id SET DEFAULT nextval(\'%s\')', $table, $sequence, )); } } public function down(Schema $schema): void { foreach (array_reverse(self::TABLES) as $table) { $sequence = $table . '_id_seq'; $this->addSql(sprintf('ALTER TABLE %s ALTER COLUMN id DROP DEFAULT', $table)); $this->addSql(sprintf('DROP SEQUENCE IF EXISTS %s', $sequence)); } } }