flask_migrate Demo

flask_migrate Demo

1.项目目录结构
flask_migrate
-static
-templates
-model.py
-exts.py
-manager.py
-config.py
-app.py

2.各py代码
model.py(模型)

from exts import db


class User(db.Model):
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(30))

exts.py(中间文件,避免循环导入)

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

manager.py (迁移项目的启动文件, 所有model建议在这里导入,migrate 的时候可以映射到数据库中)

from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand

from app import app
from exts import db
from model import User

manager = Manager(app)
Migrate(app, db)
manager.add_command('db', MigrateCommand)

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

config.py(数据库配置信息)

# MYSQL数据库配置信息
USERNAME = 'root'
PASSWORD = 'root'
HOSTMANE = '127.0.0.1'
PORT = '3306'
DATABASE = 'flask_migrate'

SQLALCHEMY_DATABASE_URI  = f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTMANE}:{PORT}/{DATABASE}'

app.py(项目启动文件)

from flask import Flask

import config
from exts import db

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


@app.route('/')
def hello_world():
    return 'hello world!'

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

项目启动之前进行迁移映射,

	python manager.py db init(初始化,在项目根目录下生产migrations目录)
	python manager.py db migrate
	python manager.py db upgrade

第一次迁移的时候,需要执行以上三个命令。
后续增删数据表字段,只需要执行后两条命令即可,实现映射

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值