在我的Linux服务器,我有MariaDB的10.0版本不支持JSON类型(支持到10.2版本),因为它不是在Ubuntu官方公布的资料库我不能更新。
当我运行命令doctrine:migration:migrate
创建表我得到一个语法错误从MariaDB的JSON的类型
MariaDB的:10.0.34 - PHP:7.1 - Symfony的:4.0.6
我该如何解决这个问题?
在我的Linux服务器,我有MariaDB的10.0版本不支持JSON类型(支持到10.2版本),因为它不是在Ubuntu官方公布的资料库我不能更新。
当我运行命令doctrine:migration:migrate
创建表我得到一个语法错误从MariaDB的JSON的类型
MariaDB的:10.0.34 - PHP:7.1 - Symfony的:4.0.6
我该如何解决这个问题?
你应该更新它,请停止使用MariaDB的默认发行回购协议。 由于他们,有自己的是保持更新, https://downloads.mariadb.org/mariadb/repositories/#mirror=exascale&distro=Ubuntu
这将不同于有指导是唯一的事情,
sudo apt update
sudo apt install mariadb-server
会变成
sudo apt update
sudo apt upgrade mariadb-server
一旦你做,你应该是好去。
从该链接的信息复制
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386] http://mirror.sax.uk.as61049.net/mariadb/repo/10.2/ubuntu artful main'
sudo apt update
sudo apt install mariadb-server
问题是,学说期待MariaDB的10.2+,但也出现了获取最新版本MariaDB的回购成(ARCH仍处于10.1)的问题。
该解决方案是在这里: https://symfony.com/doc/current/reference/configuration/doctrine.html#doctrine-dbal-configuration
只需配置server_version
在config/packages/doctrine.yml
到:
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: 'mariadb-10.1.34'
...
只需更换您的版本号的版本,你可以用得到
$ mysql --version
* @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;
}