Try moving the "metadata.create_all(engine)" below the User class declaration.
Like: <snipped code> 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) metadata.create_all(engine) <snipped code> After User class is evaluated, the metadata object will have knowledge about the "users" table. Cheers On Wed, Sep 15, 2010 at 16:52, MichelleB <mbrenne...@gmail.com> wrote: > This is driving me crazy since I can't even get through the tutorial : > ( Thanks for any help! code, then error below. > > #! /usr/local/bin/python > > """ dbtestpy > > Walking through sqlalchemy tutorial > > Author: Michelle Brenner > """ > > from sqlalchemy import Table, Column, Integer, Float, Sequence, > String, MetaData, ForeignKey, create_engine, or_, func > from sqlalchemy.orm import mapper, sessionmaker > from sqlalchemy.orm.exc import NoResultFound > engine = create_engine('sqlite:///dbtest.db', echo=False) > > > Session = sessionmaker(bind=engine) > Session.configure(bind=engine) > session = Session() > > #creating db > from sqlalchemy.ext.declarative import declarative_base > > Base = declarative_base(bind=engine) > metadata = Base.metadata > metadata.create_all(engine) > > 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) > > users_table = User.__table__ > > #adding data > ed_user = User('ed', 'Ed Jones', 'edspassword') > > #querying data > session.add(ed_user) > session.commit() > > #our_user = session.query(User).filter_by(name='ed').first() > #our_user > > Traceback (most recent call last): > File "dbtest.py", line 48, in ? > session.commit() > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/orm/ > session.py", line 673, in commit > self.transaction.commit() > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/orm/ > session.py", line 378, in commit > self._prepare_impl() > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/orm/ > session.py", line 362, in _prepare_impl > self.session.flush() > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/orm/ > session.py", line 1354, in flush > self._flush(objects) > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/orm/ > session.py", line 1432, in _flush > flush_context.execute() > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/orm/ > unitofwork.py", line 257, in execute > UOWExecutor().execute(self, tasks) > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/orm/ > unitofwork.py", line 720, in execute > self.execute_save_steps(trans, task) > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/orm/ > unitofwork.py", line 735, in execute_save_steps > self.save_objects(trans, task) > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/orm/ > unitofwork.py", line 726, in save_objects > task.mapper._save_obj(task.polymorphic_tosave_objects, trans) > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/orm/ > mapper.py", line 1387, in _save_obj > c = connection.execute(statement.values(value_params), params) > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/engine/ > base.py", line 824, in execute > return Connection.executors[c](self, object, multiparams, params) > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/engine/ > base.py", line 874, in _execute_clauseelement > return self.__execute_context(context) > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/engine/ > base.py", line 896, in __execute_context > self._cursor_execute(context.cursor, context.statement, > context.parameters[0], context=context) > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/engine/ > base.py", line 950, in _cursor_execute > self._handle_dbapi_exception(e, statement, parameters, cursor, > context) > File "/net/vol240/shots/spi/home/python/common/sqlalchemy/engine/ > base.py", line 931, 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'] > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To post to this group, send email to sqlalch...@googlegroups.com. > To unsubscribe from this group, send email to > sqlalchemy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/sqlalchemy?hl=en. > > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.