web-dev-qa-db-ja.com

構文エラーまたはアクセス違反:1064 symfonyのSQLにエラーがあります

コマンドを実行するとphp bin/console doctrine:migration:migrateどこから来たのかわからないこのエラーが発生しました。

コマンドラインエラー:AbstractMySQLDriver.php 99行目:

'CREATE TABLE user(id INT AUTO_INCREMENT NOT NULL、email VARCHAR(180)NOT NU LL、roles JSON NOT NULL、password VARCHAR(255)NOT NULL、UNIQUE INDEX UNIQ_8D93D649E7927C74(email)、PRIMARY KEY(id))の実行中に例外が発生しました)デフォルトの文字セットutf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ':

SQLSTATE [42000]:構文エラーまたはアクセス違反:1064 SQL構文にエラーがあります。 MariaDBサーバーのバージョンに対応するマニュアルで、1行目の「JSON NOT NULL、password VARCHAR(255)NOT NULL、UNIQUE INDEX UNIQ_8D93D649E7927C7」の近くで使用する正しい構文を確認してください

PDOConnection.phpの109行目:

SQLSTATE [42000]:構文エラーまたはアクセス違反:1064 SQL構文にエラーがあります。 MariaDBサーバーのバージョンに対応するマニュアルで、1行目の「JSON NOT NULL、password VARCHAR(255)NOT NULL、UNIQUE INDEX UNIQ_8D93D649E7927C7」の近くで使用する正しい構文を確認してください

PDOConnection.phpの107行目:

SQLSTATE [42000]:構文エラーまたはアクセス違反:1064 SQL構文にエラーがあります。 MariaDBサーバーのバージョンに対応するマニュアルで、1行目の「JSON NOT NULL、password VARCHAR(255)NOT NULL、UNIQUE INDEX UNIQ_8D93D649E7927C7」の近くで使用する正しい構文を確認してください

私の環境 my env

7
Abdo Abo

アンドレイは正しい。より低いバージョンのMySQLを使用するには、データベースをアップグレードするか、(はるかに簡単に)symfonyを設定する必要があります。

config/packages/doctrine.yaml

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

ここ MySQLとMariaDBの互換性のあるテーブルを見つけることができます。

1
Ultimo

MySQLのバージョンをMySQL 5.7に更新します。現在のバージョンはMySQL 5.7のJSONオブジェクトをサポートしていないためです。

0
mojtaba

この場合、このコードをconfig/packages/doctrine.yamlに貼り付けるだけです。

doctrine:
  dbal:
    # configure these for your database server
    driver: 'pdo_mysql'
    server_version: '5.5'
0