首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相对于home或环境变量的Sqlalchemy sqlite url

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

Stack Overflow用户
提问于 2019-11-30 02:41:16
回答 3查看 1.5K关注 0票数 1

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

代码语言:javascript
复制
sqlite:///folder/db_file.db

和一个绝对的,如:

代码语言:javascript
复制
sqlite:////home/user/folder/db_file.db

有没有可能写一个相对于home的路径?如下所示:

代码语言:javascript
复制
sqlite:///~/folder/db_file.db

或者更好的是,path可以包含环境变量吗?

代码语言:javascript
复制
sqlite:////${MY_FOLDER}/db_file.db

这是alembic.ini文件的上下文。因此,如果前面的目标不能直接实现,我可以使用变量替换来作弊吗?

代码语言:javascript
复制
[alembic]
script_location = db_versions
sqlalchemy.url = sqlite:///%(MY_FOLDER)s.db
...
EN

回答 3

Stack Overflow用户

发布于 2021-03-27 16:39:30

我已经通过在env.py导入config对象后立即修改该对象中的值来解决此问题:

代码语言:javascript
复制
# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config

# import my custom configuration
from my_app import MY_DB_URI
# overwrite the desired value
config.set_main_option("sqlalchemy.url", MY_DB_URI)

现在config.get_main_option("sqlalchemy.url")返回您想要的MY_DB_URI

票数 1
EN

Stack Overflow用户

发布于 2021-08-25 16:04:12

正如其他人所指出的,一个键是相对的3个斜杠,绝对的4个斜杠。

但我需要的不仅仅是这些..。

在处理字符串时遇到问题,我不得不这样做:

代码语言:javascript
复制
db_dir = "../../database/db.sqlite"
print(f'os.path.abspath(db_dir): {str(os.path.abspath(db_dir))}')
SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.abspath(db_dir)  # works
# SQLALCHEMY_DATABASE_URI = "sqlite:///" + db_dir  # fails
票数 0
EN

Stack Overflow用户

发布于 2019-12-02 20:40:48

来自alembic documentation (重点是我的):

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

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59109682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档