sqlite 如果从其他文件运行脚本,则Python找不到数据库

kqlmhetl  于 2022-11-14  发布在  SQLite
关注(0)|答案(1)|浏览(172)

在评论中解决

我正在为一个数据密集型项目而苦苦挣扎。我可以运行使用查询文件的文件--所有的查询和转换器都在这里--没有问题,但当我再次运行一个文件时,我得到一个错误,即找不到数据库。

so: 
Queryfile() : No problem,
Queryfile() -> Actionfile() : No problem,
Queryfile() -> Actionfile() -> action_manager(): Error, cant find db,
Queryfile() -> Actionfile() -> action_manager() -> startupfile(): Giant error, no way to solve it.

我的目标是在主目录中构建一个启动文件,并从那里触发所有需要的脚本,但我经常收到这个错误:

(sqlite3.OperationalError) unable to open database file
(Background on this error at: https://sqlalche.me/e/14/e3q8)
('ERROR_LOADING_ANALYSES', OperationalError('(sqlite3.OperationalError) unable to open database file'))

这真的很糟糕,我不知道我需要做什么才能让这个项目运行起来。如果有任何替代方法,例如,将工作目录移动到此文件,运行它,然后移回,我想知道它。请让我知道你是如何处理这件事的。
这是我的项目树。

├───core_data
│   ├───data_temp
│   ├───**DATABASE**
├───core_update
│   ├───update_main
│   │   └───__pycache__
│   ├───update_additional_scripts
│   │   └───__pycache__
├───core_utils
│   ├───database_querys
│   │   └───__pycache__
│   ├───database_tables
│   │   └───__pycache__
├───startup file 
├───constants.

期待您的回复。

wfypjpf4

wfypjpf41#

解决方案与SQLite数据库的路径有关:项目中的每个层都有自己的路径来连接数据库。示例:在两个嵌套的文件夹中访问数据库需要路径:sqlite:///../../core_data/SQLITEdatabase_db.db,而主路由只需要:SQLITE:/CORE_DATA/SQLITE DATABASE_DB.db和以下位置中的一个层:SQLITE:/../CORE_DATA/SQLITE数据库_DB.db

相关问题