首页 > 解决方案 > sql alchemy 无法打开具有多个数据库的数据库文件

问题描述

我使用以下代码和 python+flask+sqlalchemy 创建了两个数据库

from flask import Flask 
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///C:\\Users\\dmac'
app.config['SQLALCHEMY_BINDS'] = {
   'user': 'sqlite:///C:\\Users\\dmac\\user.db',
   'stock': 'sqlite:///C:\\Users\\dmac\\price.db'
}
db = SQLAlchemy(app)
migrate = Migrate(app, db, render_as_batch = True)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
if __name__ == '__main__':
   manager.run()

我运行以下脚本:

python app.py db init--multi 
python app.py migrate

我收到以下错误:sqlalchemy.exc.OperationalError:(sqlite3.OperationalError) 无法打开数据库文件(此错误的背景:http ://sqlalche.me/e/e3q8 )

我已经查看并尝试了发布的不同解决方案,但我仍然遇到相同的错误。任何帮助将不胜感激。谢谢

标签: pythonsqliteflasksqlalchemy

解决方案


我认为问题在于您指向SQLALCHEMY_DATABASE_URI的是文件夹而不是数据库。因此,SQLAlchemy 尝试打开dmac文件夹,就好像它不是数据库一样,并且失败了。

https://flask-sqlalchemy.palletsprojects.com/en/2.x/binds/


推荐阅读