码迷,mamicode.com
首页 > 其他好文 > 详细

flask-migrate

时间:2018-10-05 22:35:58      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:cab   rom   字段   修改   删除   isp   tab   imp   table   

不启动视图手动添加app到app栈

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

不删除表直接更改表结构(如增加一列)

模型-》迁移文件-》表

* 采用db.create_all 在后期修改字段时,不会自动映射到数据库中,必须删除表,之后重新运行‘db.reate_all‘才会重新映射,为此可使用flask-Migrate来解决这一问题。它可以在每次修改模型后,可将修改后的模型映射到数据库中。

* 使用flask-migrate必须借助flask-scripts.

* flask-migrate中包含了所有对数据库相关的命令。

  • 安装:

pip install flask-migrate

  • 使用:
技术分享图片
 1 from flask import Flask, url_for, redirect, render_template
 2 import config
 3 from db import db
 4 from models import Article
 5 
 6 app = Flask(__name__)
 7 app.config.from_object(config)
 8 # db = SQLAlchemy(app)
 9 db.init_app(app)
10 
11 @app.route(/)
12 def index():
13     # return render_template(‘index.html‘)
14     return index
15 
16 if __name__ == __main__:
17     app.run()
vlauegood.py
技术分享图片
1 from flask_sqlalchemy import SQLAlchemy
2 db = SQLAlchemy()
db.py
技术分享图片
 1 from flask_script import Manager
 2 from valuegood import app
 3 from db import db
 4 from flask_migrate import Migrate, MigrateCommand
 5 from models import Article
 6 
 7 manager = Manager(app)
 8 
 9 # 1.要使用flask-migrate必须绑定app及db
10 migrate = Migrate(app, db)
11 # 2.把MigrateCommand添加到manager
12 manager.add_command(db, MigrateCommand)
13 
14 
15 if __name__ == __main__:
16     manager.run()
manager.py
技术分享图片
1 from db import db
2 
3 class Article(db.Model):
4     __tablename__ = article
5     id = db.Column(db.Integer, primary_key=True, autoincrement=True)
6     title = db.Column(db.String(100), nullable=False)
7     content = db.Column(db.Text, nullable=False)
8     author_id = db.Column(db.Integer, nullable=False)
models.py
  • 运行:

1.python manager.py db init  

2.python manager.py db migrate

3.python manager.py db upgrade

* 当模型改变时,在cmd中重新运行2,3 即可。

* 在manager.py文件中必须把model中的模型导入:

from models import Article

flask-migrate

标签:cab   rom   字段   修改   删除   isp   tab   imp   table   

原文地址:https://www.cnblogs.com/clairexxx/p/9746029.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!