2017-08-07 66 views
0

當執行命令doctrine:schema:update --dump-sql我得到這個命令來創建一個表,你可以看到它使用utf8字符集和utf8_unicode_ci整理,但數據庫設置爲latin1latin1_swedish_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; 

在數據庫:

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" 

(爲了以防萬一,我刪除了緩存)。所以,我認爲我或學說錯過了一些東西,你能幫助我嗎?

謝謝

回答

1

的數據庫設置僅在創建表時沒有指定字符集/排序規則默認

表格設置僅爲默認爲,用於創建列而不指定字符集/排序規則。

我建議你擔心,不是關於數據庫(SCHEMATA),而是關於表和它的列。