Hi,

I'm trying to follow the "declarative" example in the tutorial with 
0.5.0b2, and it's failing to work:

from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)

from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
class User(Base):
     __tablename__ = 'users'

     id = Column(Integer, primary_key=True)
     name = Column(String)
     fullname = Column(String)
     password = Column(String)

     def __init__(self, name, fullname, password):
         self.name = name
         self.fullname = fullname
         self.password = password

     def __repr__(self):
         return "<User('%s','%s', '%s')>" % (self.name, self.fullname, 
self.password)

from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()

ed_user = User('ed', 'Ed Jones', 'edspassword')
session.add(ed_user)

session.add_all([
         User('wendy', 'Wendy Williams', 'foobar'),
         User('mary', 'Mary Contrary', 'xxg527'),
         User('fred', 'Fred Flinstone', 'blah')])

session.commit()

---

Produces:

pointyhat# python sqltest.py
2008-07-17 20:15:37,118 INFO sqlalchemy.engine.base.Engine.0x..e0 BEGIN
2008-07-17 20:15:37,121 INFO sqlalchemy.engine.base.Engine.0x..e0 INSERT 
INTO users (name, fullname, password) VALUES (?, ?, ?)
2008-07-17 20:15:37,121 INFO sqlalchemy.engine.base.Engine.0x..e0 ['ed', 
'Ed Jones', 'edspassword']
2008-07-17 20:15:37,122 INFO sqlalchemy.engine.base.Engine.0x..e0 ROLLBACK
Traceback (most recent call last):
   File "sqltest.py", line 37, in <module>
     session.commit()
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/orm/session.py",
 
line 649, in commit
     self.transaction.commit()
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/orm/session.py",
 
line 366, in commit
     self._prepare_impl()
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/orm/session.py",
 
line 350, in _prepare_impl
     self.session.flush()
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/orm/session.py",
 
line 1394, in flush
     flush_context.execute()
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/orm/unitofwork.py",
 
line 268, in execute
     UOWExecutor().execute(self, tasks)
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/orm/unitofwork.py",
 
line 754, in execute
     self.execute_save_steps(trans, task)
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/orm/unitofwork.py",
 
line 769, in execute_save_steps
     self.save_objects(trans, task)
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/orm/unitofwork.py",
 
line 760, in save_objects
     task.mapper._save_obj(task.polymorphic_tosave_objects, trans)
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/orm/mapper.py",
 
line 1163, in _save_obj
     c = connection.execute(statement.values(value_params), params)
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/engine/base.py",
 
line 847, in execute
     return Connection.executors[c](self, object, multiparams, params)
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/engine/base.py",
 
line 898, in execute_clauseelement
     return self._execute_compiled(elem.compile(dialect=self.dialect, 
column_keys=keys, inline=len(params) > 1), distilled_params=params)
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/engine/base.py",
 
line 910, in _execute_compiled
     self.__execute_raw(context)
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/engine/base.py",
 
line 919, in __execute_raw
     self._cursor_execute(context.cursor, context.statement, 
context.parameters[0], context=context)
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/engine/base.py",
 
line 963, in _cursor_execute
     self._handle_dbapi_exception(e, statement, parameters, cursor)
   File 
"/usr/local/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-py2.5.egg/sqlalchemy/engine/base.py",
 
line 945, in _handle_dbapi_exception
     raise exc.DBAPIError.instance(statement, parameters, e, 
connection_invalidated=is_disconnect)
sqlalchemy.exc.OperationalError: (OperationalError) no such table: users 
u'INSERT INTO users (name, fullname, password) VALUES (?, ?, ?)' ['ed', 
'Ed Jones', 'edspassword']

i.e. it's failing to create the table before trying to insert into it.

What is wrong?

Kris

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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