@@ -131,10 +131,6 @@ for you:
131131        $ php bin/console doctrine:database:drop --force 
132132        $ php bin/console doctrine:database:create 
133133
134-      There's no way to configure these defaults inside Doctrine, as it tries to be
135-     as agnostic as possible in terms of environment configuration. One way to solve
136-     this problem is to configure server-level defaults.
137- 
138134     Setting UTF8 defaults for MySQL is as simple as adding a few lines to
139135    your configuration file  (typically ``my.cnf ``):
140136
@@ -145,6 +141,55 @@ for you:
145141        collation-server      = utf8mb4_general_ci #  Replaces utf8_general_ci 
146142        character-set-server  = utf8mb4            #  Replaces utf8 
147143
144+      You can also change the defaults for Doctrine so that the generated SQL
145+     uses the correct character set.
146+ 
147+     .. configuration-block ::
148+ 
149+         .. code-block :: yaml 
150+ 
151+             #  app/config/config.yml 
152+             doctrine : 
153+                 charset : utf8mb4  
154+                 dbal : 
155+                     default_table_options : 
156+                         charset : utf8mb4  
157+                         collate : utf8mb4_unicode_ci  
158+ 
159+          .. code-block :: xml 
160+ 
161+             <!--  app/config/config.xml -->  
162+             <?xml  version =" 1.0"  encoding =" UTF-8"   ?> 
163+             <container  xmlns =" http://symfony.com/schema/dic/services"  
164+                 xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"  
165+                 xmlns : doctrine =" http://symfony.com/schema/dic/doctrine"  
166+                 xsi : schemaLocation =" http://symfony.com/schema/dic/services 
167+                     http://symfony.com/schema/dic/services/services-1.0.xsd 
168+                     http://symfony.com/schema/dic/doctrine 
169+                     http://symfony.com/schema/dic/doctrine/doctrine-1.0.xsd"  >
170+ 
171+                 <doctrine : config > 
172+                     <doctrine : dbal  
173+                         charset =" utf8mb4"  > 
174+                             <doctrine : default-table-option  name =" charset"  >utf8mb4</doctrine : default-table-option > 
175+                             <doctrine : default-table-option  name =" collate"  >utf8mb4_unicode_ci</doctrine : default-table-option > 
176+                     </doctrine : dbal > 
177+                 </doctrine : config > 
178+             </container > 
179+ 
180+          .. code-block :: php 
181+ 
182+             // app/config/config.php 
183+             $configuration->loadFromExtension('doctrine', array( 
184+                 'dbal' => array( 
185+                     'charset' => 'utf8mb4', 
186+                     'default_table_options' => array( 
187+                         'charset' => 'utf8mb4' 
188+                         'collate' => 'utf8mb4_unicode_ci' 
189+                     ) 
190+                 ), 
191+             )); 
192+ 
148193     We recommend against MySQL's ``utf8 `` character set, since it does not
149194    support 4-byte unicode characters, and strings containing them will be
150195    truncated. This is fixed by the `newer utf8mb4 character set `_.
0 commit comments