I have 2.1.5 project that is using alembic for DB migrations..

I originally used the standard alembic migrations/env.py to setup the 
migration environment.
This worked well for adding indexes and new tables.

However, recently I needed to do some data massaging and was hoping that I 
could use 
the ORM.. Micheal Bayer on the alembic list said this was possible by 
configuring the session
correctly..   However, I have been have some trouble doing that with 
zope.sqlalchemy

Basically I cannot get a transaction commit at the end of the migration no 
matter how
I try to use the transaction package.

Here is the relevent section of the env.py 
============================================
def run_migrations_online():
    """Run migrations in 'online' mode.
    In this scenario we need to create an Engine
    and associate a connection with the context.
    """
    import transaction
    from bq.core.model import DBSession, init_model
    
    engine = engine_from_config(
                config.get_section(config.config_ini_section), 
                prefix='sqlalchemy.', 
                poolclass=pool.NullPool)

    init_model (engine)
    connection = DBSession.connection()
    context.configure(
        connection=connection, 
        target_metadata=target_metadata
        )

    try:
        print "BEGIN"
        with transaction:
            context.run_migrations()
        #transaction.commit()
    except Exception, e:
        print "EXCEPTION", e
        transaction.abort()
    #finally:
    #    connection.close()
=======================================


And the run ..
--------------------------------------------------------------------------------
alembic -c config/alembic.ini  downgrade 156205cd1d39
2013-05-01 16:04:03,290 INFO sqlalchemy.engine.base.Engine select version()
INFO  [sqlalchemy.engine.base.Engine] select version()
2013-05-01 16:04:03,290 INFO sqlalchemy.engine.base.Engine {}
INFO  [sqlalchemy.engine.base.Engine] {}
2013-05-01 16:04:03,293 INFO sqlalchemy.engine.base.Engine select 
current_schema()
INFO  [sqlalchemy.engine.base.Engine] select current_schema()
2013-05-01 16:04:03,293 INFO sqlalchemy.engine.base.Engine {}
INFO  [sqlalchemy.engine.base.Engine] {}
2013-05-01 16:04:03,296 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
INFO  [sqlalchemy.engine.base.Engine] BEGIN (implicit)
INFO  [alembic.migration] Context impl PostgresqlImpl.
INFO  [alembic.migration] Will assume transactional DDL.
BEGIN
2013-05-01 16:04:03,298 INFO sqlalchemy.engine.base.Engine select relname 
from pg_class c join pg_namespace n on n.oid=c.relnamespace where 
n.nspname=current_schema() and relname=%(name)s
INFO  [sqlalchemy.engine.base.Engine] select relname from pg_class c join 
pg_namespace n on n.oid=c.relnamespace where n.nspname=current_schema() and 
relname=%(name)s
2013-05-01 16:04:03,298 INFO sqlalchemy.engine.base.Engine {'name': 
u'alembic_version'}
INFO  [sqlalchemy.engine.base.Engine] {'name': u'alembic_version'}
2013-05-01 16:04:03,301 INFO sqlalchemy.engine.base.Engine SELECT 
alembic_version.version_num 
FROM alembic_version
INFO  [sqlalchemy.engine.base.Engine] SELECT alembic_version.version_num 
FROM alembic_version
2013-05-01 16:04:03,301 INFO sqlalchemy.engine.base.Engine {}
INFO  [sqlalchemy.engine.base.Engine] {}
INFO  [alembic.migration] Running downgrade 306c5eb91bac -> 156205cd1d39, 
resource uniq
2013-05-01 16:04:03,304 INFO sqlalchemy.engine.base.Engine UPDATE 
alembic_version SET version_num='156205cd1d39'
INFO  [sqlalchemy.engine.base.Engine] UPDATE alembic_version SET 
version_num='156205cd1d39'
2013-05-01 16:04:03,304 INFO sqlalchemy.engine.base.Engine {}
INFO  [sqlalchemy.engine.base.Engine] {}

---------------------------------------------------------------

Note no.. COMMIT in the log and in fact the database has not been changed. 
  

If anybody has some pointers .. they would be appreciated.  
Thx


-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/turbogears?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to