I'm able to add the assertions and run "make upgrade-db" here without the 
assertions failing.


Can I get an exact version of what code you are running:

1. branch in gitlab, and/or local changes present
2. exact version of alembic
3. exact version of sqlalchemy
4. running on a clean dev sqlite db or is this some production DB ?



On Sun, Jan 15, 2023, at 11:09 AM, Lele Gaifax wrote:
> "Mike Bayer" <[email protected]> writes:
> 
> > can you add these assertions to env.py?
> >
> > with context.begin_transaction():
> >     assert not context.get_context()._in_external_transaction
> >     assert not connection.in_transaction()
> >     context.run_migrations()
> >
> > that's the condition necessary for begin_transaction() to call
> > commit() at the end.
> 
> With those in place, the first one fails with this traceback:
> 
> 16:56:36 [I] sqlalchemy.engine.Engine: BEGIN (implicit)
> 16:56:36 [I] sqlalchemy.engine.Engine: PRAGMA foreign_keys=OFF
> 16:56:36 [I] sqlalchemy.engine.Engine: [raw sql] ()
> 16:56:36 [I] sqlalchemy.engine.Engine: ROLLBACK
> Traceback (most recent call last):
>   File "/home/lele/wip/sol5/env/bin/soladmin", line 33, in <module>
>     sys.exit(load_entry_point('SoL', 'console_scripts', 'soladmin')())
>              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/home/lele/wip/sol5/src/sol/scripts/admin.py", line 640, in main
>     sys.exit((args.func(args) or 0) if hasattr(args, 'func') else 0)
>               ^^^^^^^^^^^^^^^
>   File "/home/lele/wip/sol5/src/sol/scripts/admin.py", line 195, in upgrade_db
>     command.upgrade(cfg, "head")
>   File 
> "/home/lele/wip/sol5/env/lib/python3.11/site-packages/alembic/command.py", 
> line 378, in upgrade
>     script.run_env()
>   File 
> "/home/lele/wip/sol5/env/lib/python3.11/site-packages/alembic/script/base.py",
>  line 569, in run_env
>     util.load_python_file(self.dir, "env.py")
>   File 
> "/home/lele/wip/sol5/env/lib/python3.11/site-packages/alembic/util/pyfiles.py",
>  line 94, in load_python_file
>     module = load_module_py(module_id, path)
>              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File 
> "/home/lele/wip/sol5/env/lib/python3.11/site-packages/alembic/util/pyfiles.py",
>  line 110, in load_module_py
>     spec.loader.exec_module(module)  # type: ignore
>     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
>   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
>   File "/home/lele/wip/sol5/alembic/env.py", line 88, in <module>
>     run_migrations_online()
>   File "/home/lele/wip/sol5/alembic/env.py", line 80, in run_migrations_online
>     assert not context.get_context()._in_external_transaction
> AssertionError
> 
> That "soladmin" launcher is the CLI tool to manage the instance, that in
> this case is just a thin wrapper around alembic.upgrade():
> https://gitlab.com/metapensiero/SoL/-/blob/master/src/sol/scripts/admin.py#L173
> 
> And sorry for not having mentioned that another different cog I'm trying
> out is running it with Python 3.11.
> 
> ciao, lele.
> -- 
> nickname: Lele Gaifax | Quando vivrò di quello che ho pensato ieri
> real: Emanuele Gaifas | comincerò ad aver paura di chi mi copia.
> [email protected]  |                 -- Fortunato Depero, 1929.
> 
> -- 
> SQLAlchemy - 
> The Python SQL Toolkit and Object Relational Mapper
> 
> http://www.sqlalchemy.org/
> 
> To post example code, please provide an MCVE: Minimal, Complete, and 
> Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full 
> description.
> --- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:sqlalchemy%[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/878ri3eq4g.fsf%40metapensiero.it.
> 

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/d1520db9-2301-4ce8-86e4-f3d99cbdca50%40app.fastmail.com.

Reply via email to