İnstalled nose and tested: no error
It is OK now.

To make it easy for the developers not to care about the history tables and
versioning, is it possible not to define _history models manually and make
history_meta to generate them automatically?

Suha

On Fri, Mar 27, 2009 at 20:09, Michael Bayer <mike...@zzzcomputing.com>wrote:

>
>
> install nose and type "nosetests".
>
>
> Suha Onay wrote:
> >
> > The version is ok: 0.5.3
> > The problem is I don't know how to do the unit tests: no tests package.
> > from tests import eq_, Comparable
> >
> > How can i do the unit tests?
> >
> > Suha
> >
> >
> >
> >
> > On Thu, Mar 26, 2009 at 19:04, Michael Bayer <mike...@zzzcomputing.com>
> > wrote:
> >>
> >> not sure.  make sure you're on 0.5.3.   do the unit tests included
> >> with
> >> the recipe pass ?
> >>
> >>
> >> Suha Onay wrote:
> >>> Thanks for the recipe.I faced with an error.
> >>>
> >>> The model is now:
> >>>
> ------------------------------------------------------------------------------
> >>> from history_meta import VersionedMeta
> >>>
> >>> Base = declarative_base(metaclass=VersionedMeta)
> >>>
> >>> class User(Base):
> >>>     __tablename__ = 'users'
> >>>
> >>>     id = sa.Column(sa.Integer, primary_key=True)
> >>>     name = sa.Column(sa.Unicode(12))
> >>>     fullname = sa.Column(sa.Unicode(40))
> >>>     password = sa.Column(sa.Unicode(20))
> >>>     active = sa.Column(sa.Boolean())
> >>>     type = sa.Column(sa.SmallInteger())
> >>>     note = sa.Column(sa.Text())
> >>>     date_created = sa.Column(sa.Date())
> >>>
> ------------------------------------------------------------------------------
> >>> Session = sessionmaker(bind=engine, autocommit=False, autoflush=True,
> >>> expire_on_commit=False, extension=VersionedListener())
> >>>
> ------------------------------------------------------------------------------
> >>>
> >>> When inserting a new user, the error occurs:
> >>> sqlite3: <class 'sqlalchemy.exc.IntegrityError'> -=> ('(IntegrityError)
> >>> users.version may not be NULL',)
> >>> postgre: <class 'sqlalchemy.exc.IntegrityError'> -=> ('(IntegrityError)
> >>> null
> >>> value in column "version" violates not-null constraint\n',)
> >>>
> >>> The code in history_meta creates the column version with default value
> >>> 1:
> >>> cls.version = Column('version', Integer, default=1, nullable=False)
> >>>
> >>> What is the reason?
> >>> Thanks.
> >>>
> >>> Suha
> >>>
> >>>
> >>>
> >>> On Wed, Mar 25, 2009 at 17:17, Michael Bayer
> >>> <mike...@zzzcomputing.com>wrote:
> >>>
> >>>>
> >>>> I've placed a recipe for this on the wiki at
> >>>> http://www.sqlalchemy.org/trac/wiki/UsageRecipes/LogVersions
> >>>>  .
> >>>>
> >>>>
> >>>> On Mar 25, 2009, at 10:12 AM, Suha Onay wrote:
> >>>>
> >>>> >
> >>>> > Hi,
> >>>> >
> >>>> > I am using sqlalchemy for a while in a project.
> >>>> > The project has lots of models like User:
> >>>> >
> >>>>
> ------------------------------------------------------------------------------
> >>>> > from mcmodel import MCModel
> >>>> >
> >>>> > Base = declarative_base()
> >>>> >
> >>>> > class User(MCModel, Base):
> >>>> >    __tablename__ = 'users'
> >>>> >
> >>>> >    id = sa.Column(sa.Integer, primary_key=True)
> >>>> >    name = sa.Column(sa.Unicode(12))
> >>>> >    fullname = sa.Column(sa.Unicode(40))
> >>>> >    password = sa.Column(sa.Unicode(20))
> >>>> >    active = sa.Column(sa.Boolean())
> >>>> >    type = sa.Column(sa.SmallInteger())
> >>>> >    note = sa.Column(sa.Text())
> >>>> >    date_created = sa.Column(sa.Date())
> >>>> >
> >>>>
> ------------------------------------------------------------------------------
> >>>> > All of these models inherit from MCModel (nothing doing special).
> >>>> >
> >>>> > I want to save all the changes done to a user in a seperate db table
> >>>> > like "_hist_users".
> >>>> > The new inserts do not need to be in the hist table.
> >>>> > When a user is updated, the old data of the user will be copied to
> >>>> the
> >>>> > hist table with a column declaring this is an update operation.
> >>>> > When a user is deleted, the old data of the user will be moved to
> >>>> the
> >>>> > hist table with a column declaring this is a delete operation.
> >>>> > With these operations, it is possible to know who modified what and
> >>>> > when.
> >>>> >
> >>>> > How can i achieve in this?
> >>>> > By modifying the MCModel to enable all the models aware of history
> >>>> > backup?
> >>>> > Or using class
> >>>> sqlalchemy.orm.interfaces.MapperExtension.after_update
> >>>> > methods? (i do not know how)
> >>>> > Or anything else?
> >>>> >
> >>>> > Thanks in advance.
> >>>> >
> >>>> > Suha
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> >>>> > >
> >>>>
> >>>>
> >>>> >
> >>>>
> >>>
> >>> >
> >>>
> >>
> >>
> >> >
> >>
> >
> > >
> >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to