首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有symfony 4的MariaDB 10.0JSON类型

带有symfony 4的MariaDB 10.0JSON类型
EN

Stack Overflow用户
提问于 2018-03-27 13:38:36
回答 3查看 4.6K关注 0票数 4

在我的Linux服务器中,我的MariaDB版本为10.0,它不支持json类型(直到10.2版才支持),而且我无法更新它,因为它没有在正式的ubuntu存储库中发布。

当我运行命令doctrine:migration:migrate创建表时,我会从json类型的MariaDB中得到一个语法错误。

MariaDB: 10.0.34 - PHP: 7.1 - Symfony: 4.0.6

我该如何解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-13 12:42:07

问题在于,Doctrine期待的是MariaDB 10.2+,但在将最新的MariaDB版本引入repos (Arch仍在10.1岁)方面存在问题。

解决方案在这里:https://symfony.com/doc/current/reference/configuration/doctrine.html#doctrine-dbal-configuration

只需将server_versionconfig/packages/doctrine.yml中配置为:

代码语言:javascript
复制
doctrine:
dbal:
    # configure these for your database server
    driver: 'pdo_mysql'
    server_version: 'mariadb-10.1.34'
    ...

只需将版本替换为您可以获得的版本号。

代码语言:javascript
复制
$ mysql --version
票数 17
EN

Stack Overflow用户

发布于 2021-03-16 10:37:01

请注意,不要忘记删除以前使用旧的"server_version“生成的迁移。

所有内容都包含在项目的"/迁移“目录中。

票数 0
EN

Stack Overflow用户

发布于 2019-05-25 14:31:14

代码语言:javascript
复制
* @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;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49514450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档