美文网首页
flask-migrate 笔记

flask-migrate 笔记

作者: 宽哥好 | 来源:发表于2019-11-26 11:16 被阅读0次

在实际开发环境中,经常会发生数据库修改的行为。一般我们修改数据库不会手动取修改,而是取修改 orm 模型,然后在把模型映射到数据库中。
而 flask-migrate 就是这样一种工具 ,它的底层是 alembic 。

安装:

pip install flask-migrate

使用

要让 flask-migrate 能够管理 app 中的数据库,需要使用 Migrate(app,db) 来绑定 app 和 数据库。假如现在有以下文件:

# app.py

from flask import Flask
import config
from exts import db
from models import User

app = Flask(__name__)
app.config.from_object(config)
db.init_app(app)  #


@app.route('/')
def index():
    return 'index'


if __name__ == '__main__':
    app.run()

# exts.py

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
# models.py

from exts import db

class User(db.Model):
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)
# config.py

HOSTNAME = '127.0.0.1'
PORT = 3306
DATABASE = 'flask_migrate_demo'
USERNAME = 'root'
PASSWORD = 'chenkuan1110'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)

SQLALCHEMY_DATABASE_URI = DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = False

现在通过 flask-script来配置 flask-migrate

# manage.py
from flask_script import Manager
from app import app
from exts import db
from flask_migrate import Migrate, MigrateCommand

manager = Manager(app)  # 创建manager对象
Migrate(app, db)  # 绑定 app 和 db
manager.add_command('db', MigrateCommand)  # 添加flask-migrate子命令

if __name__ == '__main__':
    manager.run()

现在就可以通过 python manage.py db xxx来运行 flask-migrate中的命令来映射数据库等操作,如

  1. 初始化迁移文件:
python manage.py db init
  1. 将模型映射到文件中
python manage.py db migrate
  1. 将添加的映射文件添加到数据库:
python manage.py db upgrade

flask-migrate 使用注意事项

  • 需要将映射到数据库的模型导入到 manager.py 中 ,显示导入,不然不能创建迁移文件

相关文章

  • flask-migrate 笔记

    在实际开发环境中,经常会发生数据库修改的行为。一般我们修改数据库不会手动取修改,而是取修改 orm 模型,然后在把...

  • flask数据库配置使用

    一、flask-migrate插件 模型迁移 官方文档 安装 配置 flask-migrate + flask-s...

  • flask03

    一、flask-migrate插件 模型迁移 官方文档 安装 配置 flask-migrate + flask-s...

  • Python_Flask_简单博客系统开发:数据库迁移——Mig

    使用Flask-Migrate完成数据库更新升级,Flask-Migrate插件是基于Alembic,Alembi...

  • Flask-Migrate

    在实际的开发环境中,经常会发生数据库修改的行为。一般我们修改数据库不会直接手动去修改,而是去修改ORM对应的模型,...

  • Flask - Migrate

    Flask-Migrate 插件提供了和 Django 自带的 migrate 类似的功能。 即 Alembic(...

  • 03-Flask之数据模型

    一、Flask-Migrate插件(模型迁移) 二、SQLAlchemy数据定义 字段 约束 三、SQLAlche...

  • 03-Flask之数据模型

    一、Flask-Migrate插件(模型迁移) 二、SQLAlchemy数据定义 字段 约束 三、SQLAlche...

  • 03-Flask之数据模型

    一、Flask-Migrate插件(模型迁移) 二、SQLAlchemy数据定义 字段 约束 三、SQLAlche...

  • 03-Flask中数据模型

    一、Flask-Migrate插件(模型迁移) 二、SQLAlchemy数据定义 字段 约束 三、SQLAlche...

网友评论

      本文标题:flask-migrate 笔记

      本文链接:https://www.haomeiwen.com/subject/qxwtbctx.html