True. I should have modified
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.
"""
engine = engine_from_config(
config.get_section(config.config_ini_section),
prefix='sqlalchemy.',
poolclass=pool.NullPool)
connection = engine.connect()
to use the application's session/connection management instead of creating
a new connection.
Thanks.
On Wednesday, May 14, 2014 1:01:21 AM UTC+10, Michael Bayer wrote:
>
> if possible, I’d modify env.py to make use of your application’s normal
> engine/session mechanics. There would be no “alembic_get_session()”
> method. Whatever mechanism your app uses to get at the Engine/Session,
> pull it in within env.py and use the exact same environment for migrations.
>
>
>
>
>
> On May 13, 2014, at 8:41 AM, gbr <[email protected] <javascript:>>
> wrote:
>
> In some Alembic upgrade scripts, I need to use application sessions to
> make use of some code that requires these sessions. To avoid deadlocks from
> blocking transactions I use the following lines to transparently call
> `get_db_session()` regardless of whether Alembic or the application is
> executed:
>
>
> def _alembic_get_db_session():
> from alembic import op
> alembic_connection = op.get_bind()
> return Session(bind=alembic_connection)
>
>
> def _normal_get_db_session():
> return scoped_session(session_maker)
>
>
> def get_db_session():
> if is_alembic_active:
> return _alembic_get_db_session()
> else:
> return _normal_get_db_session()
>
>
> How can I fill out the `is_alembic_active` part? I know that the
> application is running and op.get_bind() is called, the following exception
> is raised (I tried to check with op.get_bind() is None which obviously
> doesn't work).
>
> NameError: Can't invoke function 'get_bind', as the proxy object has not
>> yet been established for the Alembic 'Operations' class. Try placing this
>> code inside a callable.
>>
>
> Any idea?
>
> --
> 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] <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
--
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.