Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 4通过make生成用户后:用户架构更新崩溃_Symfony_Mariadb_Command Line Interface_Generate - Fatal编程技术网

Symfony 4通过make生成用户后:用户架构更新崩溃

Symfony 4通过make生成用户后:用户架构更新崩溃,symfony,mariadb,command-line-interface,generate,Symfony,Mariadb,Command Line Interface,Generate,我正在尝试通过CLI创建用户:() php-bin/console-make:user 此命令用于创建实现UserInterface的User.php实体 但在命令之后: php bin/console原则:模式:更新--force 我发现错误: 在AbstractMySQLDriver.php第79行中: 执行“CREATE TABLE user(id INT AUTO_INCREMENT NOT NULL,email VARCHAR(18)”时发生异常 0)不为空,角色JSON不为空,密码V

我正在尝试通过CLI创建用户:()

php-bin/console-make:user

此命令用于创建实现UserInterface的User.php实体

但在命令之后:

php bin/console原则:模式:更新--force

我发现错误:

在AbstractMySQLDriver.php第79行中:

执行“CREATE TABLE user(id INT AUTO_INCREMENT NOT NULL,email VARCHAR(18)”时发生异常 0)不为空,角色JSON不为空,密码VARCHAR(255)不为空,唯一索引UNIQ_8D93D649E7927C74(emai l) ,主键(id))默认字符集utf8mb4 COLLATE utf8mb4\u unicode\u ci ENGINE=InnoDB':

SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查ma 与您的MariaDB服务器版本相对应的nual,以便使用接近“JSON NOT NULL,pass”的正确语法 字VARCHAR(255)不为空,第1行的唯一索引UNIQ_8D93D649E7927C7'

在PDOConnection.php第90行中:

SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查ma 与您的MariaDB服务器版本相对应的nual,以便使用接近“JSON NOT NULL,pass”的正确语法 字VARCHAR(255)不为空,第1行的唯一索引UNIQ_8D93D649E7927C7'

在PDOConnection.php第88行中:

SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查ma 与您的MariaDB服务器版本相对应的nual,以便使用接近“JSON NOT NULL,pass”的正确语法 字VARCHAR(255)不为空,第1行的唯一索引UNIQ_8D93D649E7927C7'

编辑:

有关sql的信息:

服务器类型:MariaDB

服务器版本:10.1.31-MariaDB-MariaDB.org二进制分发


协议版本:10

JSON类型对于您的MariaDB数据库版本(cf)是未知类型。条令创建了一个错误的迁移脚本,因为它不知道您使用的是哪个版本

config/packages/doctrine.yml
中的
server\u version
配置为:

doctrine:
dbal:
    # configure these for your database server
    driver: 'pdo_mysql'
    server_version: 'XXXX'
    ...

将X替换为您的版本,前缀为
mariadb-
as。因此DoctrineBundle将知道JSON不受支持,并将替换为另一种类型。

您的MariaDB必须更新。您有一个type=JSON的字段(例如roles),但也就是说,您有10.1版


另外,您使用的方法(update+
--force
)也不是很symfony4。更好的方法是:

php bin/console make:user 
php bin/console make:migration
php bin/console doctrine:migrations:migrate

您使用的是哪一版本的maria db?问题已更新,但我接受了另一个答案,因为我讨厌迁移,而且它可以工作:)适应需要一点时间,但我无法想象没有迁移的情况。发生的事情更加可预测,如果出现问题,很容易追溯