--- On Sun, 11/22/09, Conor <[email protected]> wrote:
> There is a problem with your code when the tag is in the
> cache: if the
> tag is added to the session via session.add or a relation
> "add" cascade,
> SQLAlchemy will try to INSERT the tag into the database on
> the next
> flush.
> -Conor
I don't know, it seems not. I created a new empty Tags table, I create a new
Pylons tag, and it creates it only on the first flush. If I add it a second
time to the session, and reflush it, it won't try to re-insert it in the db.
Here's my ipython session :
In [1]: from someproject.model.tag import *
In [2]: setup_all()
In [3]: create_all()
12:59:34,878 INFO [sqlalchemy.engine.base.Engine.0x...6fec] SHOW VARIABLES
LIKE 'sql_mode'
12:59:34,882 INFO [sqlalchemy.engine.base.Engine.0x...6fec] ()
12:59:34,886 INFO [sqlalchemy.engine.base.Engine.0x...6fec] DESCRIBE `Tags`
12:59:34,886 INFO [sqlalchemy.engine.base.Engine.0x...6fec] ()
12:59:34,888 INFO [sqlalchemy.engine.base.Engine.0x...6fec] ROLLBACK
12:59:34,889 INFO [sqlalchemy.engine.base.Engine.0x...6fec]
CREATE TABLE `Tags` (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(64),
PRIMARY KEY (id)
)
12:59:34,907 INFO [sqlalchemy.engine.base.Engine.0x...6fec] ()
12:59:34,959 INFO [sqlalchemy.engine.base.Engine.0x...6fec] COMMIT
In [4]: pylons = Tag("Pylons")
12:59:59,171 INFO [sqlalchemy.engine.base.Engine.0x...6fec] BEGIN
/home/chaouche/PYTHONENV/lib/python2.6/site-packages/SQLAlchemy-0.5.5-py2.6.egg/sqlalchemy/engine/default.py:230:
SAWarning: Unicode type received non-unicode bind param value 'Pylons'
param.append(processors[key](compiled_params[key]))
12:59:59,172 INFO [sqlalchemy.engine.base.Engine.0x...6fec] SELECT `Tags`.id
AS `Tags_id`, `Tags`.name AS `Tags_name`
FROM `Tags`
WHERE `Tags`.name = %s
LIMIT 0, 1
12:59:59,172 INFO [sqlalchemy.engine.base.Engine.0x...6fec] ['Pylons']
not in the database
In [5]: pylons = Tag("Pylons")
In [6]: session.add(pylons)
In [7]: session.flush
Out[7]: <bound method ScopedSession.do of <sqlalchemy.orm.scoping.ScopedSession
object at 0x98572ac>>
In [8]: session.flush()
13:00:14,116 INFO [sqlalchemy.engine.base.Engine.0x...6fec] INSERT INTO `Tags`
(name) VALUES (%s)
13:00:14,116 INFO [sqlalchemy.engine.base.Engine.0x...6fec] ['Pylons']
In [9]: session.add(pylons)
In [10]: session.flush()
In [11]: pylons = Tag("Pylons")
In [12]: pylons
Out[12]: <Tag Pylons>
In [13]: session.add
session.add session.add_all
In [13]: session.add(pylons)
In [14]: session.flush()
In [15]:
--
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=.