A.Seddighi
A.Seddighi

Reputation: 1765

MariaDB 10.0 JSON type with symfony 4

In my Linux server, I have MariaDB version 10.0 which does not support json type (supported until version 10.2) and I can't update it because it is not released in official ubuntu repository.

When I run the command doctrine:migration:migrate for creating tables I get a syntax error from MariaDB for json type

MariaDB: 10.0.34 - PHP: 7.1 - Symfony: 4.0.6

How do I solve this issue?

Upvotes: 4

Views: 4779

Answers (3)

Spaceknight
Spaceknight

Reputation: 31

Just a small note, don't forget to delete the previous migrations that you generated with the old "server_version".

Everything is contained in the "/ migrations" directory of your project.

Upvotes: 0

Ronald2g
Ronald2g

Reputation: 55

* @ORM\Column(name="roles", type="string")
private $usuarioRoles;

public function getRoles(): array {
        $roles = explode(",",$this->usuarioRoles);
        // guarantee every user at least has ROLE_USER
        $roles[] = 'ROLE_USER';
        return array_unique($roles);
}

public function setRoles(array $roles): self {
        $this->usuarioRol = implode(",",$roles);
        return $this;
}

Upvotes: -1

Putr
Putr

Reputation: 967

The problem is that Doctrine is expecting MariaDB 10.2+, but there have been problems getting the latest MariaDB versions into repos (Arch is still at 10.1).

The solution is here: https://symfony.com/doc/current/reference/configuration/doctrine.html#doctrine-dbal-configuration

Just configure server_version in config/packages/doctrine.yml to:

doctrine:
dbal:
    # configure these for your database server
    driver: 'pdo_mysql'
    server_version: 'mariadb-10.1.34'
    ...

Just replace the version with your version number which you can get with

$ mysql --version

Upvotes: 18

Related Questions