0

コマンドを実行すると、doctrine:schema:update --dump-sql以下の SQL クエリを取得してテーブルを作成します。utf8文字セットとutf8_unicode_ci照合を使用します。

CREATE TABLE an_example
(id INT AUTO_INCREMENT NOT NULL, 
 id_user INT NOT NULL, 
 date DATETIME NOT NULL, 
 PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;

ただし、データベースは および に設定されていlatin1ますlatin1_swedish_ci。データベースの文字セットと照合順序を示すクエリの結果を以下に示します。

mysql> SELECT * FROM information_schema.SCHEMATA  WHERE schema_name = "mydb";
+--------------+-------------+----------------------------+------------------------+----------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
+--------------+-------------+----------------------------+------------------------+----------+
| def          | mydb        | latin1                     | latin1_swedish_ci      | NULL     |
+--------------+-------------+----------------------------+------------------------+----------+

文字セットと照合順序をconfig.yml次のように設定しました。

doctrine:
    dbal:
        driver: pdo_mysql
        host: '%database_host%'
        port: '%database_port%'
        dbname: '%database_name%'
        user: '%database_user%'
        password: '%database_password%'
        charset: latin1
        default_table_options:
            collate: "latin1_swedish_ci"

念のためキャッシュも削除しました。

4

1 に答える 1