如何在我的gunicorn+flask项目中使用flask_migrate

2024-03-28 16:49:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个使用flask+gunicorn+MySQL的项目,目录如下:

├── Pipfile
├── Pipfile.lock
├── README.md
├── __init__.py
├── app
│   ├── __init__.py
│   ├── login.py
│   ├── system.py
│   ├── model.py
│   ├── task.py
│   └── view.py
├── config.py
├── gunicorn.conf
├── requirements.txt
├── tests
│   └── testurl.py
└── wsgi.py

app/init.py中有一个函数工厂,如下所示:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

def create_app(conf):

    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = DATA_BASE_PATH
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

    db.init_app(app=app)
    with app.app_context():
        db.create_all()

    app.register_blueprint(blueprint=view, url_prefix='/view/')

    socketio.init_app(app, async_mode=None)
    login_init(app)

    return app


在wsgi.py文件中,我有:

from app import create_app
from config import app_conf
from app import socketio

app = create_app(app_conf)

if __name__ == "__main__":
    socketio.run(app=app, host=host, use_reloader=False)
    

如果我想运行此porj,我使用:

gunicorn -c gunicorn.conf wsgi:app

现在我想使用flask migrate自动更新MySQL表更改,但我想知道应该在哪里初始化迁移?我在wsgi.py或app/init.py中尝试过这样做,但都不起作用。。。 请帮我一把,谢谢


Tags: frompyimportviewconfigappflaskwsgi
1条回答
网友
1楼 · 发布于 2024-03-28 16:49:27

您应该在app/init.py文件中初始化烧瓶迁移,例如:

from flask_migrate import Migrate
migrate = Migrate()

def create_app() 
    migrate.init_app(app)  
    # your original code here

然后,要运行迁移,只需在cmdshell中运行flask db migrate

相关问题 更多 >