【发布时间】:2019-08-05 06:49:34
【问题描述】:
我正在构建一个烧瓶应用程序并尝试使用 Flask-Migrate 设置数据库迁移。我已经让它工作起来了,但是有一个奇怪的问题是 app/migrate 没有在同一个地方查找 .db 文件,需要知道如何让它们在同一个地方查找。
我的应用程序运行良好,没有出现任何错误。 Flask-Migrate 完美运行,我没有收到错误。这是我当前应用的简化布局:
app.py
app/
|- __init__.py
|- config.py
当我运行“烧瓶运行”时,它认为数据库在这里:
app.py
app/
|- __init__.py
|- config.py
|- app.db <--(In the app folder)
但是当我运行“flask db upgrade”时,它认为数据库在这里:
app.py
app.db <--(In the main folder)
app/
|- __init__.py
|- config.py
我将 SQLALCHEMY_DATABASE_URI 设置为“sqlite:///app.db”,如果我不断更改“sqlite:///app.db”和“sqlite”之间的 SQLALCHEMY_DATABASE_URI,我实际上可以让它们都正常工作: ///../app.db' 在运行这两个命令之间。
app.py 文件
from app import create_app
app = create_app()
if __name__ == '__main__':
app.run(debug=True)
简体__init__.py file:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from app.config import Config
from flask_migrate import Migrate
db = SQLAlchemy()
migrate = Migrate()
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(Config)
db.init_app(app)
migrate.init_app(app, db)
from app.routes import main
app.register_blueprint(main)
return app
简化的 config.py 文件
import os
class Config:
SECRET_KEY = os.environ.get('SECRET_KEY')
SQLALCHEMY_DATABASE_URI = os.environ.get('SQLALCHEMY_DATABASE_URI')
我希望 flask run 和 flask db upgrade 在同一个地方看到 .db 文件,但他们没有。相反,他们会分别在子文件夹或父文件夹中看到它们。
【问题讨论】:
标签: python flask flask-migrate