Sorry for the confusion, I meant "alembic upgrade head" indeed.  As you 
confirmed the expected behavior, I did a bit of debugging to find out where 
I might have done a mistake, and I found the problem.

I wrote a test revision that looked like the following:

def upgrade():
    bind = op.get_bind()
    db = Session(bind)
    db.execute('alter table cats rename to dogs') 

With level = DEBUG for [logger_sqlalchemy], I get:

> alembic upgrade head
INFO  [sqlalchemy.engine.base.Engine] SELECT CAST('test plain returns' AS 
VARCHAR(60)) AS anon_1
INFO  [sqlalchemy.engine.base.Engine] ()
INFO  [sqlalchemy.engine.base.Engine] SELECT CAST('test unicode returns' AS 
VARCHAR(60)) AS anon_1
INFO  [sqlalchemy.engine.base.Engine] ()
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [sqlalchemy.engine.base.Engine] PRAGMA table_info("alembic_version")
INFO  [sqlalchemy.engine.base.Engine] ()
INFO  [sqlalchemy.engine.base.Engine] PRAGMA table_info("alembic_version")
INFO  [sqlalchemy.engine.base.Engine] ()
INFO  [sqlalchemy.engine.base.Engine] 
CREATE TABLE alembic_version (
        version_num VARCHAR(32) NOT NULL
)


INFO  [sqlalchemy.engine.base.Engine] ()
INFO  [sqlalchemy.engine.base.Engine] COMMIT
INFO  [alembic.runtime.migration] Running upgrade  -> 80def0e180bc, Rename 
cats to dogs
INFO  [sqlalchemy.engine.base.Engine] BEGIN (implicit)
INFO  [sqlalchemy.engine.base.Engine] alter table cats rename to dogs
INFO  [sqlalchemy.engine.base.Engine] ()
INFO  [sqlalchemy.engine.base.Engine] INSERT INTO alembic_version (
version_num) VALUES ('80def0e180bc')
INFO  [sqlalchemy.engine.base.Engine] ()
INFO  [sqlalchemy.engine.base.Engine] ROLLBACK

As you can see, my omission of db.commit() caused alembic's version upgrade 
to be rolled back.  However, the table has really been renamed from "cats" 
to "dogs".  Therefore, a second run of alembic upgrade head will fail in 
this case.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy-alembic" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to