[DC-791] [PostgreSQL] In case model is build from existing database sequence name is invalid and doctrine throw exception Created: 16/Jul/10 Updated: 25/Aug/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | 1.2.2 |
| Fix Version/s: | 1.2.4 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Przemysław Ciąćka | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
symfony 1.4.5, postgresql 8.4, debian lenny, nginx |
||
| Attachments: |
|
| Description |
|
Firstly I created database directly in postgresql. When I try to insert new record to database I received following error: sequence "Category_id_seq" does not exist In schema file sequence name is defined like this: sequence: '"Address_id_seq"' In Category model file is same like above, apostrophes and quotes. When I remove quotes from sequence in model files everything is ok and there're no problems with insert new row to database. |
| Comments |
| Comment by Enrico Stahn [ 13/Aug/10 ] |
|
There are 2 solutions to your problem. The first is to change the sequence name in the schema, the second is to change the doctrine configuration. The default behavior of doctrine is to add a "_seq" to each sequence name. If you remove this part from you sequence name then it sould work as expected. The second option is to change the behavior of doctrine with the following configuration parameter: Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_SEQNAME_FORMAT, '%s'); default: Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_SEQNAME_FORMAT, '%s_seq'); |
| Comment by Przemysław Ciąćka [ 25/Aug/10 ] |
|
Problem are quotes in sequence name. Temporarly I fixed it by add str_replace() into importer from PostgreSQL - now in schema sequence names are without quotes. |
[DC-980] Moving all ALTERS queries to the end of generated sql file (task build-sql) Created: 04/Mar/11 Updated: 04/Mar/11 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Cli, Schema Files |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Critical |
| Reporter: | Sergey Eremenko | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
Actual in case of using multi database configuration and foreign keys between them. Now build-sql task generates SQL query for database by database in alphabetical order. It's ugly when we have multidatabase configuration and foreign keys between their tables. It's impossible to do 'import-sql' without errors beucase foreign keys constrains to nonexisting tables are in next database in order. I have added some code to strings 1176-... |
[DC-888] Foreign key id columns do not respect ATTR_DEFAULT_IDENTIFIER_OPTIONS Created: 13/Oct/10 Updated: 13/Oct/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Migrations, Relations, Schema Files |
| Affects Version/s: | 1.2.3 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Tom Boutell | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Any |
||
| Description |
|
Some time ago Jon Wage suggested that one can override the 8-byte default integer type for IDs by setting Doctrine_Core::ATTR_DEFAULT_IDENTIFIER_OPTIONS in configureDoctrine (in a Symfony project), like this: public function configureDoctrine(Doctrine_Manager $manager) { // Use 4-byte IDs for backwards compatibility with databases built on // Apostrophe 1.4, sfDoctrineGuard pre-5.0, etc. You don't need this for // a brand new site $options = $manager->getAttribute(Doctrine_Core::ATTR_DEFAULT_IDENTIFIER_OPTIONS); $options['length'] = 4; $manager->setAttribute(Doctrine_Core::ATTR_DEFAULT_IDENTIFIER_OPTIONS, $options); }This works for primary key id columns. However it is not respected by foreign key id columns, which do not consult ATTR_DEFAULT_IDENTIFIER_OPTIONS. I looked at working around this using ATTR_DEFAULT_COLUMN_OPTIONS, however it is not type-specific. So if you set a length of 4 with that option, it applies not just to all integers but also to dates, datetimes, booleans and many other things that definitely should not be 4 bytes. The correct fix seems to be for foreign key id columns to respect ATTR_DEFAULT_IDENTIFIER_OPTIONS. Also, ATTR_DEFAULT_COLUMN_OPTIONS should probably let you specify different defaults for each column type as the length option is basically not usable in its current form. But that would not be a particularly clean solution to the foreign key id problem since limiting non-ID integers to 4 bytes should not be necessary.
The motivation for this bug report: The new stable release of sfDoctrineGuardPlugin (for Symfony) does not specify an integer size as it formerly did, so the size of integers now defaults to 8 bytes. This breaks backwards compatibility with existing code that adds foreign key relationships to sfGuard objects like sfGuardUser, etc. Creating migrations to deal with changing this across all tables involved is quite difficult (all foreign key indexes must be dropped and recreated - doctrine:migrations-diff is unable to figure it out, understandably). |
[DC-886] Doctrine should support mysql native float/double Created: 13/Oct/10 Updated: 13/Oct/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | 1.2.3 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Severin Puschkarski | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
symfony 1.4.8 / mysql |
||
| Description |
|
Doctrine does not support native mysql float/double. It always specifies float(18,2) which reduces precission to 2 decimals. I think doctrine should support mysql native float/double! |
[DC-885] Building schema doesn't work when tables have cross database foreign keys (MySQL). Created: 12/Oct/10 Updated: 12/Oct/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | 1.2.3 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Fabrice Agnello | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Windows XP SP3, Apache 2, PHP 5.3, MySQL 5.1.36, Symfony 1.4.8. |
||
| Description |
|
When building schema using the doctrine:build-schena task from multiple databases used in our project, the import process end up with a "missing classname" error without building the schema.yml file. This seems to be caused by the fact that the tables contained in the databases contain foreign keys referencing the other databases tables pks. As an example we have :
When generating the schema, and specifically on the second database step, there are no informations found for the primary keys contained main database. Digging in the import process, it seems that the issue comes from the fact that the Doctrine_Import.importSchema function creates a new definition array instance for every database encountered in the databases.yml. The correction found for this was to take the array() creation one level up before the connections traversing. original code : $manager = Doctrine_Manager::getInstance(); $builder = new Doctrine_Import_Builder(); $builder->setTargetPath($directory); $builder->setOptions($options); $definitions = array(); // <<<<<<<<<<<<<<<<<<< STAYING THERE CAUSES THE "MISSING CLASSNAME" ERROR foreach ($connection->import->listTables() as $table) { ...... modified code : public function importSchema($directory, array $connections = array(), array $options = array()) { $classes = array(); $manager = Doctrine_Manager::getInstance(); $definitions = array(); // <<<<<<<<<<<<<<<<<<PUT HERE foreach ($manager as $name => $connection) { // Limit the databases to the ones specified by $connections. // Check only happens if array is not empty if ( ! empty($connections) && ! in_array($name, $connections)) { continue; } $builder = new Doctrine_Import_Builder(); foreach ($connection->import->listTables() as $table) { |
[DC-858] Custom Behaviors/Templates cause autoloader errors Created: 04/Sep/10 Updated: 04/Sep/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Behaviors, Schema Files |
| Affects Version/s: | 1.2.1, 1.2.2, 1.2.3 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | apric | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Windows Vista/7 |
||
| Description |
|
When emitting Behaviors from schema files (YAML in our case), This is leading to possible autoloader errors (in our case: Zend autoloader does not find our custom behavior): YAML: {{ 'SoftDelete' is the short class name of 'Doctrine_Template_SoftDelete'. The corresponding section responsible for this bug: File: Doctrine/Import/Builder.php {{ There is no test whether a full class name is given as $name, so there is no way to add custom behaviors to records without the autoloader checking for a non-existing class and spilling errors/notices. With the above YAML schema file it would test for class_exists('Doctrine_Template_My_Doctrine_Template_CustomBehavior'), which is obviously not existing. a quick fix could look like this: {{ if (strpos($name, '_') === false // is this a shortened name of an original Doctrine behaviour class? && class_exists("Doctrine_Template_$name", true)) { $classname = "Doctrine_Template_$name";}}} Another alternative (but breaking compatability with existing schema files) would be to always use full class names instead of fancy short names. Interestingly enough, this error is only occuring with Zend autoloader on Windows systems, but can be easily avoided with the fix like suggested above. |
| Comments |
| Comment by Jonathan H. Wage [ 04/Sep/10 ] |
|
I believe this is because the Zend autoloader does not fail silently by default. I think it can be configured to check if the file exists and not throw any errors. |
[DC-849] Error Generate Schema.yml Database Oracle Created: 31/Aug/10 Updated: 31/Aug/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | 1.2.3 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | fernando guerrero | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Ubuntu 10.4, Oracle |
||
| Description |
|
Some deleted records are genereated by the Oracle driver, the following patch solves the problem, found with .... alexia.velasquez@hotmail.es, vtamara@pasosdeJesus.org, jeronimo0000@gmail.com — Doctrine/Import/Oracle.php.orig 2010-08-31 11:01:10.934142453 -0500 |
| Comments |
| Comment by Jonathan H. Wage [ 31/Aug/10 ] |
|
Hi, the formatting is a bit unreadable. Can you fork http://github.com/doctrine/doctrine1 and send a pull request? |
[DC-1015] bindComponent not called before inherited classes base definitions Created: 04/Jul/11 Updated: 04/Jul/11 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Inheritance, Schema Files |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Adrian Nowicki | Assignee: | Roman S. Borschel |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
symfony 1.4 |
||
| Description |
|
If I define a base model: Entity: and inherited model: Box: Then file with base definition of Box does not contain bindComponent sentence to bind Box model with connection specified for Entity model. |
[DC-991] Views abstraction model Created: 28/Mar/11 Updated: 28/Mar/11 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | 1.2.3 |
| Fix Version/s: | None |
| Type: | Documentation | Priority: | Major |
| Reporter: | Jesus Farías Lacroix | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
all |
||
| Description |
|
View abstraction model Hi, i've been using doctrine from about six months, i'm not an expert but i know the basics and this has been enough for me and my web-app requirements. The problem begins cause i need a kind of "dynamic table model" in other words an specific one table's abstraction, i thought implement a view for this purpose, but i can't figure out how define the BaseModel for the view to use it like a table, thus allowing the use of methods like save(), find() and build (logicals) relationships with others entities. in few words: can i build a table model from a query/view?, it is possible? i read the posts from above but this issue still being not realy clear at all for me. me realy will apreciate any help, thanks in advance. Regards. |
[DC-400] bit(1) columns are broken Created: 06/Jan/10 Updated: 11/Apr/11 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Rory McCann | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Ubuntu 9.10 php 5.2 mysql 5.1, all installed with ubuntu's apt |
||
| Description |
|
Ihave the following Doctrine schema: — I have created the database and table for this. I then have the following PHP code: $obj1 = new TestTable(); $obj2 = new TestTable(); Clearly my attempt is to save the bit value 0 in the bitty column. However after running this PHP code I get the following odd results: mysql> select * from test_table;
---
--- mysql> select * from test_table where bitty = 1;
---
-- mysql> select * from test_table where bitty = 0; Those boxes are the 0x01 character, i.e. Doctrine has set the value to 1, not 0. However I can insert 0's into that table direct from MySQL: mysql> insert into test_table values (4, b'0'); mysql> select * from test_table where bitty = 0;
---
--- See also this question on StackOverflow http://stackoverflow.com/questions/2008021/php-doctrine-orm-not-able-to-handle-bit1-types-correctly |
[DC-359] concrete inheritance doesn't create all relations Created: 14/Dec/09 Updated: 16/Dec/09 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | 1.2.0, 1.2.1 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Juan Vega | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
PHP 5.2.11 (cli) (built: Oct 5 2009 21:36:09) Server version: Apache/2.2.13 (Unix) Server version: 5.1.38-log MySQL Community Server (GPL) |
||
| Attachments: |
|
| Description |
| Comments |
| Comment by Juan Vega [ 15/Dec/09 ] |
|
I know where is the problem, in Doctrine_Core::loadModels the list of models returned are alphabetically sorted, if I can rearrange the array by inheritance, the foreign keys for the models ('host' 'partner' 'person' 'supplier') are created. more explicity: I have this Array
(
[0] => Airline
[1] => Bank
[2] => Client
[3] => DynamicField
[4] => Employe
[5] => Entity
[6] => EntityDynamicFields
[7] => Host
[8] => Partner
[9] => Person
[10] => Supplier
)
I need this Array
(
[0] => Entity
[1] => Airline
[2] => Bank
[3] => Client
[4] => Employe
[5] => Host
[6] => Partner
[7] => Person
[8] => Supplier
[9] => DynamicField
[10] => EntityDynamicFields
)
|
| Comment by Juan Vega [ 16/Dec/09 ] |
|
ok, this is my patch to rearrange the models loaded, this array puts the child models before the parents |
[DC-287] Schema: package property for model Created: 25/Nov/09 Updated: 08/Jun/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major |
| Reporter: | Mickael HOAREAU | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
There is a property "package" for the schema.yml file. But this should be used only for plugin symfony. It will be good to have the same feature for classic model (not plugin), to be available to organize the model inside of the model folder. This feature is critical for huge project. Indeed having 200 files at the root of the folder model/doctrine is very difficult to maintain. |
| Comments |
| Comment by Mickael HOAREAU [ 25/Dec/09 ] |
|
Here a possible patch for doctrine 1.2, it is working for the basic cases. It probably needs to be improved. |
| Comment by Jonathan H. Wage [ 15/Mar/10 ] |
|
I agree this is a problem, but your patch is not good. It doesn't follow the coding standards and has some formatting problems. Also, it doesn't seem like a good solution. What do you think? |
[DC-833] Data type in YAML schema spacing issue Created: 18/Aug/10 Updated: 18/Aug/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | 1.2.1 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Danny Kopping | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Windows 7, Apache 2.2.11, PHP 5.2.9, MySQL 5.1.36 |
||
| Description |
|
When creating a column in a table in a YAML schema file, the following two scenarios produce different results: Model: Please note the spacing in the second example before the (3) in the type definition. The first example will generate a mediumint in MySQL with a length other than 3, while the second example works as expected. |
| Comments |
| Comment by Danny Kopping [ 18/Aug/10 ] |
|
The formatting for the YAML didn't come out right through JIRA, I apologize for that |
[DC-864] Generating YAML schema from model should pick up also charset, collate and other options Created: 10/Sep/10 Updated: 10/Jan/11 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Import/Export, Schema Files |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Peter Helcmanovsky | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
I did change Doctrine/Export/Schema.php to pick up some options from model, then they get exported into YAML schema by current code. Adding the patch. (sorry, can't run the tests, so I'm not sure whether it does break something, really shouldn't) In my project it works just as expected (did need it for the way I do migrations). TODO for Doctrine devs:
I hope my additions make sense and will help you to improve Doctrine project. (and that you will include it, so I don't have custom modified Doctrine |
| Comments |
| Comment by Peter Helcmanovsky [ 10/Jan/11 ] |
|
By hunting down an eluding bug I figured out (i.e. by hard way) that the indexes are dropped as well during YAML generation. I will do another pull request on github including another 3 lines to fix that... I see this issue is ignored anyway by core devs. |
[DC-948] 3 underscores in my yaml file lead to error Created: 09/Dec/10 Updated: 09/Dec/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Lawrence Krubner | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Linux 2.6.31-15-generic #50-Ubuntu SMP Tue Nov 10 14:54:29 UTC 2009 Symfony 1.4 |
||
| Description |
|
I had this yaml: OldAppellations: connection: doctrine tableName: old_appellations columns: appellations___sql: { type: text }appellationsapcode_sql: { type: text }appellationsappellation_sql: { type: text }appellationscolor_sql: { type: text }appellationscountry_sql: { type: text }appellationsregion_sql: { type: text }appellationsregion_for_link_sql: { type: text }appellationssubt_sql: { type: text }appellationstaster_appel_sql: { type: text }appellationstotal_r_sql: { type: text }appellationstype_sql: { type: text }export_record_id_sql: { type: text }I got this error: Notice: Undefined index: o__appellations in /home/lkrubner/dev/tastingnotes/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Hydrator/Graph.php on line 302 Then I changed the 3 underscores to 1: appellations_sql: { type: text }I rebuilt the model and the error was gone. More details and screenshots are here: http://www.symfonyexperts.com/question/show/id/178 |
[DC-418] Inherited models creating NOT NULL restrictions on their parents Created: 11/Jan/10 Updated: 11/Jan/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Attributes, Inheritance, Record, Schema Files |
| Affects Version/s: | 1.2.1 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | luke scott | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Linux skywalker-9 2.6.31-17-generic #54-Ubuntu SMP Thu Dec 10 17:01:44 UTC 2009 x86_64 GNU/Linux |
||
| Attachments: |
|
| Description |
|
to reproduce, create the yaml included in sample.yaml (Note the not-null columns in each subclass) if you try to save an OnlineProduct without setting copyright_year, or if you create a print_product without setting website_branding_id, then you will get a not null error. |
| Comments |
| Comment by luke scott [ 11/Jan/10 ] |
|
YAML format was destroyed during copy & paste! |
[DC-776] $record->link('Alias', $id) throws an exception because of getIdentifier returns array, not string Created: 05/Jul/10 Updated: 05/Jul/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Record, Relations, Schema Files |
| Affects Version/s: | 1.2.2 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Viktoras Bezaras | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Symfony 1.4.6-DEV |
||
| Sub-Tasks: |
|
| Description |
|
I want to bookmark ads on my site. So i have Ads table, users table (sfDoctrineGuard) and a refclass Bookmarks. I've created an ajax link to an action, where i retrieved $ad object, $user_id and Bookmarks: ad_id: { type: integer(4), primary: true } relations: Ads: { onDelete: CASCADE, local: ad_id, foreign: ad_id }As my Bookmarks table has 2 primary keys in the link method if (count($ids) > 0) { $q->whereIn($rel->getTable()->getIdentifier(), array_values($this->identifier())); }$rel->getTable()->getIdentifier() returned me an array('user_id', 'ad_id') instead of a string. So the query which was generated looked like My schema: I've solved an issue by creating a new Bookmark instance and saving it, but i presume that issue might distract someone. |
[DC-752] Data type "decimal" can be unsigned in MySQL 5.0 Created: 18/Jun/10 Updated: 18/Jun/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Native SQL, Schema Files |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Ilya Sabelnikov | Assignee: | Roman S. Borschel |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
OS: FreeBSD 8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 amd64 |
||
| Description |
|
I have found in official docs of MySQL v5.0: Decimals can be unsigned: DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] Here above is my "schema.yml" file: schema.yml
Project:
columns:
id:
type: integer(4)
unsigned: true
primary: true
autoincrement: true
salary_range_from:
type: decimal(12)
scale: 2
unsigned: true
After i run: ./symfony doctrine:build --all my "schema.sql" is: schema.sql CREATE TABLE `project` ( `id` INT AUTO_INCREMENT, `salary_range_from` DECIMAL(12, 2), INDEX `company_id_idx` (`company_id`), PRIMARY KEY(`id`) ) DEFAULT CHARACTER SET utf8 ENGINE = INNODB; |