I have a SQLAlchemy table class created using the Declarative method:

mysqlengine = create_engine(dsn)
session = scoped_session(sessionmaker(bind=mysqlengine))
Base = declarative_base()
Base.metadata.bind = mysqlengine

class MyTable(Base):
  __table_args__ = {'autoload' : True}

Now, when using this table within the code I would like to not have to use the session.add method in order to add each new record to the active session so instead of:

row = MyTable(1, 2, 3)
session.add(row)
session.commit()

I would like to have:

row = MyTable(1, 2, 3)
session.commit()

Now, I know of this question already: Possible to add an object to SQLAlchemy session without explicit session.add()?

And, I realize you can force this behavior by doing the following:

class MyTable(Base):
  def __init__(self, *args, **kw):
    super(MyTable, self).__init__(*args, **kw)
    session.add(self)

However, I do not want to bloat my code containing 30 tables with this method. I also know that Elixir ( http://elixir.ematia.de/trac/wiki ) does this so it must be possible in some sense.

Edit
Report