前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask之flask-migrate

Flask之flask-migrate

作者头像
人生不如戏
发布2018-07-05 11:36:16
8650
发布2018-07-05 11:36:16
举报
文章被收录于专栏:抠抠空间抠抠空间

简介

flask-migrate是flask的一个扩展模块,主要是扩展数据库表结构的.

官方文档:http://flask-migrate.readthedocs.io/en/latest/

 使用flask-migrate需要依赖flask-script组件,详见本人另外一篇博客 --> flask-script详解

安装

代码语言:javascript
复制
pip install flask-migrate

使用举例

创建命令

代码语言:javascript
复制
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'

db = SQLAlchemy(app)
migrate = Migrate(app, db)

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

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(128))

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

 执行命令

代码语言:javascript
复制
$ python manage.py db init   初始化数据库,会创建一个migations文件夹,并且会在数据库中生成一个alembic_version表
$ python manage.py db migrate  创建迁移历史
$ python manage.py db upgrade  更新数据库

 坑

1.设计表时字段的默认值

代码语言:javascript
复制
operator = db.Column(db.String(40), nullable=True, server_default="init_data")

这里用参数server_default,而不是default

2.如果报这个错误

代码语言:javascript
复制
Heroku Postgres, db migrate fail: alembic.util.exc.CommandError: Can't locate revision identified by

将alembic_version表中的数据删掉即可

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-06-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 安装
  • 使用举例
    • 创建命令
      •  执行命令
      •  坑
        • 1.设计表时字段的默认值
          • 2.如果报这个错误
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档