On 06/14/2010 12:13 PM, Az wrote:
> I've got an error that says the primary key is not unique. This
> shouldn't be possible since my primary keys are unique IDs :S
>   

It sounds like you are importing the same projects from your XML file to
the database multiple times. If you used session.merge instead of
session.add in addToTable, SQLAlchemy should be updating the existing
project rows instead of trying to insert new ones. I don't do this much
myself, so I could be wrong.

> This is only happening after I switched to a physical sqlite3 database
> from the :memory: one
>   

This is because you are now starting from a populated database instead
of an empty one.

> #####BEGIN#####
>
> File "Main.py", line 97, in <module>
>     MCS.addToTable()
>   File "/XXX/MonteCarloSimulation.py", line 77, in addToTable
>     session.flush()
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/orm/
> session.py", line 1354, in flush
>     self._flush(objects)
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/orm/
> session.py", line 1432, in _flush
>     flush_context.execute()
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/orm/
> unitofwork.py", line 261, in execute
>     UOWExecutor().execute(self, tasks)
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/orm/
> unitofwork.py", line 753, in execute
>     self.execute_save_steps(trans, task)
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/orm/
> unitofwork.py", line 768, in execute_save_steps
>     self.save_objects(trans, task)
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/orm/
> unitofwork.py", line 759, in save_objects
>     task.mapper._save_obj(task.polymorphic_tosave_objects, trans)
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/orm/
> mapper.py", line 1428, in _save_obj
>     c = connection.execute(statement.values(value_params), params)
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/
> engine/base.py", line 824, in execute
>     return Connection.executors[c](self, object, multiparams, params)
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/
> engine/base.py", line 874, in _execute_clauseelement
>     return self.__execute_context(context)
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/
> engine/base.py", line 896, in __execute_context
>     self._cursor_execute(context.cursor, context.statement,
> context.parameters[0], context=context)
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/
> engine/base.py", line 950, in _cursor_execute
>     self._handle_dbapi_exception(e, statement, parameters, cursor,
> context)
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/
> lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/
> engine/base.py", line 931, in _handle_dbapi_exception
>     raise exc.DBAPIError.instance(statement, parameters, e,
> connection_invalidated=is_disconnect)
> sqlalchemy.exc.IntegrityError: (IntegrityError) PRIMARY KEY must be
> unique u'INSERT INTO projs (proj_id, proj_allocated, proj_blocked,
> proj_sup, presim_pop) VALUES (?, ?, ?, ?, ?)' [1100001, None, None,
> 44, 0]
>
> #####END#####
>   

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to