mysql, table reflection doesn't work
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 Domain
2008-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)
-
Account Deleted -
This output suggests that 5.1.25 is no longer always quoting identifiers during reflection operations. Need to verify and test.
-
Nope, identifiers were a red herring: that was just trac eating the quotes. 554f223f6b6af9bf2dd387e146a1c67650599ed6 handles this style of USING output.
-
repo owner - removed milestone
Removing milestone: 0.5.0 (automated comment)
- Log in to comment
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, KEYFK_Users_1
(organization_id
), CONSTRAINTFK_Users_1
FOREIGN KEY (organization_id
) REFERENCESOrganization
(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 TABLEUsers
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 TABLEOrganization
16:39:41,308 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLEOrganization
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 TABLEDomain
16:39:41,331 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLEDomain
2008-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 TABLEService
16:39:41,353 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLEService
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 TABLEPlan
16:39:41,375 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLEPlan
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 TABLEBilling
16:39:41,398 INFO sqlalchemy.engine.base.Engine.0x..70 SHOW CREATE TABLEBilling
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>