相对于主变量或环境变量的Sqlalchemy sqlite url

相对于主变量或环境变量的Sqlalchemy sqlite url,sqlite,sqlalchemy,ini,alembic,Sqlite,Sqlalchemy,Ini,Alembic,sqlite数据库的相对sqlalchemy路径可以写成: sqlite:///folder/db_file.db 绝对值为: sqlite:////home/user/folder/db_file.db 可以写一个相对于主的路径吗?像这样: sqlite:///~/folder/db\u file.db 或者更好,路径可以包含环境变量吗 sqlite:////${MY_FOLDER}/db_file.db 这是alembic.ini文件的上下文。因此,如果前面的目标不可能直接实现,我可

sqlite数据库的相对sqlalchemy路径可以写成:

sqlite:///folder/db_file.db
绝对值为:

sqlite:////home/user/folder/db_file.db
可以写一个相对于主的路径吗?像这样:

sqlite:///~/folder/db\u file.db
或者更好,路径可以包含环境变量吗

sqlite:////${MY_FOLDER}/db_file.db
这是alembic.ini文件的上下文。因此,如果前面的目标不可能直接实现,我可以使用变量替换进行作弊吗

[alembic]
script_location = db_versions
sqlalchemy.url = sqlite:///%(MY_FOLDER)s.db
...
从(我的)重点:

url-通过sqlalchemy连接到数据库的url。此配置值仅在env.py文件调用它们时使用;在“通用”模板中,在run_migrations_offline()函数中调用config.get_main_选项(“sqlalchemy.url”)和在run_migrations_online()函数中从_config(prefix=“sqlalchemy.”)调用引擎_都是引用此键的位置如果SQLAlchemy URL应该来自其他来源,例如来自环境变量或全局注册表,或者如果迁移环境使用多个数据库URL,鼓励开发人员修改env.py文件,以使用任何适当的方法来获取数据库URL


因此,在这种情况下,sqlalchemy url格式可以循环使用,并由python本身生成。

我在
env.py
导入对象之后,通过修改
config
对象中的值来解决这个问题:

#这是Alembic配置对象,它提供
#访问正在使用的.ini文件中的值。
config=context.config
#导入我的自定义配置
从我的应用导入我的数据库URI
#覆盖所需的值
config.set_main_选项(“sqlalchemy.url”,MY_DB_URI)

现在
config.get\u main\u选项(“sqlalchemy.url”)
返回您想要的
MY\u DB\u URI

我也有同样的问题-您是否找到了解决方案或解决方法?我的理想选择是在URL中包含环境变量。我放弃并修改了
env.py
,忽略
alembic.ini
URL,使用从我自己的包导入的URL。在
env.py
的第一行中,我写道:
将我的包.config导入为config;url=config.DATABASE.url
,然后在
run\u migrations\u offline
中,我通过执行以下操作注释掉了
\url=config.get\u main\u选项(“sqlalchemy.url”)
run\u migrations\u online
中的
engine\u的第一个参数中的url:
options=config.get\u部分(config.config\u ini\u部分);选项[“sqlalchemy.url”]=url;可连接=引擎\u from\u配置(选项,…