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
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to