I changed the driver to PyMySQL, removed the default_charset query from the URL, and seems like the problem is gone.
El martes, 2 de septiembre de 2014 08:05:16 UTC-6, Michael Bayer escribió: > > try different drivers to see if that resolves, and also try using raw > oursql to isolate the problem. > > > On Sep 2, 2014, at 2:24 AM, Jorge Araya Navarro <[email protected] > <javascript:>> wrote: > > > Hello! > > > > First and foremost, I want to apology if this email shouldn't go into > > this email list. > > > > Ok, I'm facing this ugly problem in SQLAlchemy with MySQL. Every time I > > want to insert a Unicode string into the database this error is > > triggered: > > > > sqlalchemy.exc.DBAPIError: (CollatedWarningsError) (None, 'query > > caused warnings', [(<class 'oursql.Warning'>, (u"Incorrect string > > value: '\\xF0\\x9F\\x92\\xAF' for column 'text' at row 1", 1366L))]) > > > > I have searched on the Internet for an answer for my problem, but, so > > far, the solutions I have found do not work. I know that for 4-byte > > Unicode characters you need your database to use the `utf8mb4` > > charset. I did exactly that, I delete my database and created it with > > `CREATE DATABASE test_facebook_db CHARACTER SET utf8mb4;`, here are some > > variables and their values: > > > > MariaDB [test_facebook_db]> show variables like 'coll%'; > > +----------------------+--------------------+ > > | Variable_name | Value | > > +----------------------+--------------------+ > > | collation_connection | utf8_general_ci | > > | collation_database | utf8mb4_general_ci | > > | collation_server | utf8_general_ci | > > +----------------------+--------------------+ > > 3 rows in set (0.00 sec) > > > > MariaDB [test_facebook_db]> show variables like 'char%'; > > +--------------------------+----------------------------+ > > | Variable_name | Value | > > +--------------------------+----------------------------+ > > | character_set_client | utf8 | > > | character_set_connection | utf8 | > > | character_set_database | utf8mb4 | > > | character_set_filesystem | binary | > > | character_set_results | utf8 | > > | character_set_server | utf8 | > > | character_set_system | utf8 | > > | character_sets_dir | /usr/share/mysql/charsets/ | > > +--------------------------+----------------------------+ > > 8 rows in set (0.00 sec) > > > > MariaDB [test_facebook_db]> show full columns from tt_post; > > +-------------------------+--------------+--------------------+- > > | Field | Type | Collation | > > +-------------------------+--------------+--------------------+- > > | id | int(11) | NULL | > > | username_id | int(11) | NULL | > > | added | datetime | NULL | > > | created_at | datetime | NULL | > > | favorite_count | bigint(20) | NULL | > > | filter_level | varchar(10) | utf8mb4_general_ci | > > | tweet_id | bigint(20) | NULL | > > | in_reply_to_screen_name | varchar(40) | utf8mb4_general_ci | > > | in_reply_to_status_id | bigint(20) | NULL | > > | in_reply_to_user_id | bigint(20) | NULL | > > | lang | varchar(3) | utf8mb4_general_ci | > > | possibly_sensitive | tinyint(1) | NULL | > > | retweet_count | bigint(20) | NULL | > > | text | varchar(160) | utf8mb4_general_ci | > > +-------------------------+--------------+--------------------+- > > > > And yet, if something like the string u'You gotta be who you are in this > > world. \ud83d\udcaf' is received and I try to insert it into the > > database, the CollatedWarningsError is triggered. > > > > The string I'm using to create my sqlalchemy engine is this > > > `mysql+oursql://dev:devpassword@localhost/test_facebook_db?default_charset=1&charset=utf8mb4"` > > > > I'm not doing anything special in my tables or when I issue the command > > to create the tables in the database. > > -- > > Pax et bonum. > > Jorge Araya Navarro. > > Diseñador Publicitario, Programador Python y colaborador en Parabola > > GNU/Linux-libre > > https://es.gravatar.com/shackra > > > > -- > > You received this message because you are subscribed to the Google > Groups "sqlalchemy" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected] <javascript:>. > > To post to this group, send email to [email protected] > <javascript:>. > > Visit this group at http://groups.google.com/group/sqlalchemy. > > For more options, visit https://groups.google.com/d/optout. > > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
