[DDC-2139] Table collate/charset doesn't inherits from database Created: 12/Nov/12 Updated: 25/Nov/12 Resolved: 25/Nov/12 |
|
| Status: | Resolved |
| Project: | Doctrine 2 - ORM |
| Component/s: | ORM, Tools |
| Affects Version/s: | 2.3 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Major |
| Reporter: | William Knak | Assignee: | Benjamin Eberlei |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | charset, collate, collation, mysql, utf, utf8 | ||
| Environment: |
Symfony2 |
||
| Description |
|
Using symfony2 command doctrine:schema:create the tables and Varchar fields are Collate/Charset are not inherited from database. I changed MySQL defaults to latin1/latin1_general_ci; The doctrine:database:create works; but tables and fields don't. So I found there is a code on MySqlPlataform.php: if ( ! isset($options['charset'])) { $options['charset'] = 'utf8'; }if ( ! isset($options['collate'])) { $options['collate'] = 'utf8_unicode_ci'; }$query .= 'DEFAULT CHARACTER SET ' . $options['charset']; So if you don't pass collate and charset as entity options, it will put utf8 and utf8_unicode_ci instead of dabatase default charset. My suggestion is to change a little bit to: if (isset($options['charset'])) { $query .= 'DEFAULT CHARACTER SET ' . $options['charset']; }if (isset($options['collate'])) { $query .= ' COLLATE ' . $options['collate']; } |
| Comments |
| Comment by Benjamin Eberlei [ 25/Nov/12 ] |
|
If we change it, then it will be like before and users disliked that very much. The decision is to use UTF-8 as default and everybody else has to change the information instead of the other way around. |
[DDC-1274] there is no way to set collate of the table charset ! Created: 13/Jul/11 Updated: 12/Nov/12 Resolved: 13/Jul/11 |
|
| Status: | Resolved |
| Project: | Doctrine 2 - ORM |
| Component/s: | Mapping Drivers |
| Affects Version/s: | 2.0.6 |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Critical |
| Reporter: | sina miandashti | Assignee: | Benjamin Eberlei |
| Resolution: | Invalid | Votes: | 0 |
| Labels: | charset, collate, collation, mysql | ||
| Environment: |
zend frame work 1.10 with doctrine orm 2 and dbal |
||
| Description |
|
i searched a lot for this there is no way to set the collate of table fields to for ex. utf8_persian_ci in doctrine settings |
| Comments |
| Comment by Benjamin Eberlei [ 13/Jul/11 ] |
|
This is not a supported feature, if you set the collation in the CREATE DATABASE statement this will inherit to all fields automatically. |
| Comment by William Knak [ 12/Nov/12 ] |
|
Actually Doctrine 2.3.0 does not allow inheritance. Please look at Issue # |