【问题标题】:sql alchemy unable to open database file with multiple databasessql alchemy 无法打开具有多个数据库的数据库文件
【发布时间】:2021-08-16 03:18:55
【问题描述】:

我用下面的代码和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

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

【问题讨论】:

  • 以下是版本:python-3.6、flask-1.0.2、flask-migrate-2.5.3、flask-script-2.0.6

标签: python sqlite flask sqlalchemy


【解决方案1】:

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

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

【讨论】:

  • 我明白了。谢谢你。我去看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
  • 2014-11-11
  • 2014-08-30
  • 2011-03-17
相关资源
最近更新 更多