【问题标题】:`flask db migrate` error`flask db 迁移`错误
【发布时间】:2019-02-04 00:19:29
【问题描述】:

我们正在尝试运行flask db migrateflask db upgrade,这会引发以下错误:

Usage: flask db upgrade [OPTIONS] [REVISION]

Error: The file/path provided (C) does not appear to exist.  Please verify the path 
           is correct.  If app is not on PYTHONPATH, ensure the extension is .py

我们已将应用程序的目录添加到 PYTHONPATH 环境变量中,但仍然出现错误。任何帮助将不胜感激。

下面是我们的__init__.py 代码。我们错过了什么吗?

import logging
from flask import Flask
from flask_appbuilder import SQLA, AppBuilder

"""
 Logging configuration
"""

logging.basicConfig(format='%(asctime)s:%(levelname)s:%(name)s:%(message)s')
logging.getLogger().setLevel(logging.DEBUG)

app = Flask(__name__)
app.config.from_object('config')
db = SQLA(app)
appbuilder = AppBuilder(app, db.session)
migrate.init_app(app, db)


"""
from sqlalchemy.engine import Engine
from sqlalchemy import event

#Only include this for SQLLite constraints
@event.listens_for(Engine, "connect")
def set_sqlite_pragma(dbapi_connection, connection_record):
    # Will force sqllite contraint foreign keys
    cursor = dbapi_connection.cursor()
    cursor.execute("PRAGMA foreign_keys=ON")
    cursor.close()
"""    

from app import views

【问题讨论】:

  • 你运行命令时是否在flask app目录下?您是否已将应用程序配置为使用migrate,如此处所示 - flask-migrate.readthedocs.io/en/latestapp = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' db = SQLAlchemy(app) migrate = Migrate(app, db)
  • 我们在正确的目录中但是我们可能没有正确配置应用程序。您引用的代码需要添加到__init__.py 对吗?

标签: python python-3.x flask sqlalchemy flask-sqlalchemy


【解决方案1】:

我想如果你像你一样使用迁移

migrate.init_app(app, db)  

你必须先导入它然后声明它:

from flask_migrate import Migrate
migrate = Migrate()
migrate.init_app(app, db)

或者我认为你可以这样做:

from flask_migrate import Migrate
migrate = Migrate(app, db) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 2016-01-19
    相关资源
    最近更新 更多