2017-08-07 71 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),而是关于表和它的列。