问题
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?
回答1:
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
回答2:
* @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;
}
来源:https://stackoverflow.com/questions/49514450/mariadb-10-0-json-type-with-symfony-4