mysql, table reflection doesn't work

Issue #1117 resolved
Former user created an issue

I moved my mysql database from 5.0.45 to 5.1.25. This is with 0.5.0b2 of SA.

| Users | CREATE TABLE Users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, mail varchar(45) NOT NULL, password varchar(32) NOT NULL, salt varchar(8) NOT NULL, name varchar(45) DEFAULT NULL, address varchar(60) DEFAULT NULL, phone varchar(16) DEFAULT NULL, organization_id int(10) unsigned DEFAULT NULL, status tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (id) USING BTREE, KEY FK_Users_1 (organization_id), CONSTRAINT FK_Users_1 FOREIGN KEY (organization_id) REFERENCES Organization (id) ) ENGINE=InnoDB AUTO_INCREMENT=152 DEFAULT CHARSET=utf8 |

On the Pylons application, I get <class 'sqlalchemy.exc.ArgumentError'>: Mapper Mapper|User|Users could not assemble any primary key columns for mapped table 'Users'

...

2008-07-26 16:39:41,201 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'character_set%%' 16:39:41,201 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'character_set%%' 2008-07-26 16:39:41,202 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,202 INFO sqlalchemy.engine.base.Engine.0x..70 {} 2008-07-26 16:39:41,213 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'sql_mode' 16:39:41,213 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'sql_mode' 2008-07-26 16:39:41,213 INFO sqlalchemy.engine.base.Engine.0x..70 {'charset': None} 16:39:41,213 INFO sqlalchemy.engine.base.Engine.0x..70 {'charset': None} 2008-07-26 16:39:41,277 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Users 16:39:41,277 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Users 2008-07-26 16:39:41,277 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,277 INFO sqlalchemy.engine.base.Engine.0x..70 {} 2008-07-26 16:39:41,289 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'lower_case_table_names' 16:39:41,289 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'lower_case_table_names' 2008-07-26 16:39:41,289 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,289 INFO sqlalchemy.engine.base.Engine.0x..70 {} /home/aj99243/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/databases/mysql.py:1655: SAWarning: Unknown schema content: u' PRIMARY KEY (id) USING BTREE,' only=include_columns) 2008-07-26 16:39:41,308 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Organization 16:39:41,308 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Organization 2008-07-26 16:39:41,308 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,308 INFO sqlalchemy.engine.base.Engine.0x..70 {} 2008-07-26 16:39:41,331 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Domain 16:39:41,331 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Domain2008-07-26 16:39:41,331 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,331 INFO sqlalchemy.engine.base.Engine.0x..70 {} 2008-07-26 16:39:41,353 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Service 16:39:41,353 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Service 2008-07-26 16:39:41,353 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,353 INFO sqlalchemy.engine.base.Engine.0x..70 {} /home/aj99243/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/databases/mysql.py:1655: SAWarning: Unknown schema content: u' PRIMARY KEY (domain_id,name) USING BTREE,' only=include_columns) 2008-07-26 16:39:41,375 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Plan 16:39:41,375 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Plan 2008-07-26 16:39:41,375 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,375 INFO sqlalchemy.engine.base.Engine.0x..70 {} 2008-07-26 16:39:41,398 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Billing 16:39:41,398 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Billing 2008-07-26 16:39:41,398 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,398 INFO sqlalchemy.engine.base.Engine.0x..70 {}

Comments (4)

  1. Former user Account Deleted

    Re-paste with some nicer format.

    <pre> | Users | CREATE TABLE Users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, mail varchar(45) NOT NULL, password varchar(32) NOT NULL, salt varchar(8) NOT NULL, name varchar(45) DEFAULT NULL, address varchar(60) DEFAULT NULL, phone varchar(16) DEFAULT NULL, organization_id int(10) unsigned DEFAULT NULL, status tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (id) USING BTREE, KEY FK_Users_1 (organization_id), CONSTRAINT FK_Users_1 FOREIGN KEY (organization_id) REFERENCES Organization (id) ) ENGINE=InnoDB AUTO_INCREMENT=152 DEFAULT CHARSET=utf8 |

    On the Pylons application, I get <class 'sqlalchemy.exc.ArgumentError'>: Mapper Mapper|User|Users could not assemble any primary key columns for mapped table 'Users'

    2008-07-26 16:39:41,201 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'character_set%%' 16:39:41,201 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'character_set%%' 2008-07-26 16:39:41,202 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,202 INFO sqlalchemy.engine.base.Engine.0x..70 {} 2008-07-26 16:39:41,213 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'sql_mode' 16:39:41,213 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'sql_mode' 2008-07-26 16:39:41,213 INFO sqlalchemy.engine.base.Engine.0x..70 {'charset': None} 16:39:41,213 INFO sqlalchemy.engine.base.Engine.0x..70 {'charset': None} 2008-07-26 16:39:41,277 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Users 16:39:41,277 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Users 2008-07-26 16:39:41,277 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,277 INFO sqlalchemy.engine.base.Engine.0x..70 {} 2008-07-26 16:39:41,289 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'lower_case_table_names' 16:39:41,289 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW VARIABLES LIKE 'lower_case_table_names' 2008-07-26 16:39:41,289 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,289 INFO sqlalchemy.engine.base.Engine.0x..70 {} /home/aj99243/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/databases/mysql.py:1655: SAWarning: Unknown schema content: u' PRIMARY KEY (id) USING BTREE,' only=include_columns) 2008-07-26 16:39:41,308 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Organization 16:39:41,308 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Organization 2008-07-26 16:39:41,308 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,308 INFO sqlalchemy.engine.base.Engine.0x..70 {} 2008-07-26 16:39:41,331 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Domain 16:39:41,331 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Domain2008-07-26 16:39:41,331 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,331 INFO sqlalchemy.engine.base.Engine.0x..70 {} 2008-07-26 16:39:41,353 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Service 16:39:41,353 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Service 2008-07-26 16:39:41,353 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,353 INFO sqlalchemy.engine.base.Engine.0x..70 {} /home/aj99243/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/databases/mysql.py:1655: SAWarning: Unknown schema content: u' PRIMARY KEY (domain_id,name) USING BTREE,' only=include_columns) 2008-07-26 16:39:41,375 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Plan 16:39:41,375 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Plan 2008-07-26 16:39:41,375 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,375 INFO sqlalchemy.engine.base.Engine.0x..70 {} 2008-07-26 16:39:41,398 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Billing 16:39:41,398 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLE Billing 2008-07-26 16:39:41,398 INFO sqlalchemy.engine.base.Engine.0x..70 {} 16:39:41,398 INFO sqlalchemy.engine.base.Engine.0x..70 {} </pre>

  2. jek

    This output suggests that 5.1.25 is no longer always quoting identifiers during reflection operations. Need to verify and test.

  3. Log in to comment