Hello.
I'm working with OSCommerce, which has a poorly defined schema. There
are no foreignkey constraints, so i have redefined the relevant columns
in SA (see below).
I add some rows, and when flushing i get the following error:
sqlalchemy.exceptions.InvalidRequestError: Column
'products_description.products_id' is not available, due to conflicting
property 'products_id':ColumnProperty(['products_description.products_id'])
What are the usual causes of this type of error?
Here is the code loading the tables and setting up mappings:
[snip Product and Description class definitions]
p_d_table = sa.Table('products_description', meta,
sa.Column('products_id', sa.Integer,
sa.ForeignKey('products.products_id')),
autoload=True)
sa.mapper(Description, p_d_table)
p_table = sa.Table('products', meta,
[snip manufacturers_id column]
autoload=True)
sa.mapper(
Product, p_table,
properties=dict(
descriptions=sa.relation(Description),
[snip categories relation]
)
)
Here are the relevant tables:
mysql> describe products;
+-------------------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default |
Extra |
+-------------------------+---------------+------+-----+---------+----------------+
| products_id | int(11) | NO | PRI | NULL |
auto_increment |
| products_quantity | int(4) | NO | |
| |
| products_model | varchar(30) | YES | | NULL
| |
| products_image | varchar(64) | YES | | NULL
| |
| products_price | decimal(15,4) | NO | |
| |
| products_date_added | datetime | NO | MUL |
| |
| products_last_modified | datetime | YES | | NULL
| |
| products_date_available | datetime | YES | | NULL
| |
| products_weight | decimal(5,2) | NO | |
| |
| products_status | tinyint(1) | NO | |
| |
| products_tax_class_id | int(11) | NO | |
| |
| manufacturers_id | int(11) | YES | | NULL
| |
| products_ordered | int(11) | NO | | 0
| |
| products_distributor | varchar(20) | NO | |
| |
+-------------------------+---------------+------+-----+---------+----------------+
mysql> describe products_description;
+----------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default |
Extra |
+----------------------+--------------+------+-----+---------+----------------+
| products_id | int(11) | NO | PRI | NULL |
auto_increment |
| language_id | int(11) | NO | PRI | 1
| |
| products_name | varchar(64) | NO | MUL |
| |
| products_description | text | YES | | NULL
| |
| products_url | varchar(255) | YES | | NULL
| |
| products_viewed | int(5) | YES | | 0
| |
+----------------------+--------------+------+-----+---------+----------------+
I'm new to SA, so if I'm missing something obvious, please bear with me.
--
Matias Hermanrud Fjeld
Copyleft Solutions AS
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users