Flask框架之数据库迁移集成到Script中

1. 安装migrate模块

pip install flask_migrate

2. 创建manage对象,并接管app和db对象

manager = Manager(app, db) 

3. 将数据库迁移操作集成到script中

manager.add_command(‘db‘, MigrateCommand)

案例代码:

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‘]=‘mysql://root:[email protected]:3306/flask_01‘

manager = Manager(app)

db = SQLAlchemy(app)

migrate = Migrate(app, db)

# 使用migrate集成到script
manager.add_command(‘db‘, MigrateCommand)

class Book(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20), nullable=True)
    hero_set = db.relationship(‘Hero‘, backref=‘book‘, lazy=‘dynamic‘)

class Hero(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20), nullable=True)
    book_id = db.Column(db.Integer, db.ForeignKey(‘book.id‘))

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

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

使用shell脚本执行数据库迁移

1. 创建makemigrations文件夹,及其相关文件。

python 文件名 init

2. 创建数据库迁移文件

python 文件名 migrate

3. 执行迁移文件

python 文件名 upgrade

原文地址:https://www.cnblogs.com/chao666/p/12424885.html

时间: 2024-11-09 05:09:47

Flask框架之数据库迁移集成到Script中的相关文章

Flask之flask-migrate 数据库迁移

flask-migrate是flask的一个扩展模块,主要是扩展数据库表结构的. 官方文档:http://flask-migrate.readthedocs.io/en/latest/ 使用flask-migrate需要依赖flask-script组件,详见本人另外一篇博客 --> flask-script详解 安装 pip install flask-migrate 使用举例 创建命令 from flask import Flask from flask_sqlalchemy import S

Flask框架 之数据库扩展Flask-SQLAlchemy

一.安装扩展 pip install flask-sqlalchemy pip install flask-mysqldb 二.SQLAlchemy 常用的SQLAlchemy字段类型 类型名 python中类型 说明 Integer int 普通整数,一般是32位 SmallInteger int 取值范围小的整数,一般是16位 BigInteger int或long 不限制精度的整数 Float float 浮点数 Numeric decimal.Decimal 普通整数,一般是32位 St

Android高手进阶篇4-实现侧滑菜单框架,一分钟集成到项目中

先来看下面的这张效果图: 上面这张效果图是百度影音的,现在在Android上很流行,最初是由facebook自己实现的,而后各大应用有跟风之势,那么这种侧滑效果是如何实现的呢? 网上现在这种侧滑菜单的例子很对,也有开源的框架sliderMenu,而且可以定义很多样式,但大部分例子,都只是实现了这种类似效果,没有实现一种可移植的框架,仅仅是单页面效果而已,而且集成起来复杂,鉴于此,我自己实现了一套侧滑菜单的框架: 1.最常用的支持左右策划 2.多个页面切换也好不费力,页面切换的逻辑已经实现好了,集

ASP.NET MVC5--为数据库新增字段(涉及数据库迁移技术)

Setting up Code First Migrations for Model Changes--为模型更改做数据库迁移. 1.打开资源管理器,在App_Data文件夹下,找到movies.mdf数据库文件,如果没有看到点击显示所有文件. 2.删掉movies.mdf数据库文件,并编译项目.确保没有报错. 3.找到工具菜单栏下面的NuGet程序包管理器---程序包管理器控制台,如图所示: 4,在程序包管理器控制台中,输入:Enable-Migrations -ContextTypeName

使用 Code First 数据库迁移

当 Entity Framework Code First 的数据模型发生改变时,默认会引发一个System.InvalidOperationException 的异常.解决方法是使用DropCreateDatabaseAlways 或DropCreateDatabaseIfModelChanges,让Entity Framework 自动将数据库删除,然后重新创建.不过,这种方式过于残暴,应该使用更人性化的方式,让Entity Framework 帮助我们自动调整数据库架构.并且仍然保留现有数

Code First 数据库迁移

当 Entity Framework Code First 的数据模型发生改变时,默认会引发一个System.InvalidOperationException 的异常.解决方法是使用DropCreateDatabaseAlways 或DropCreateDatabaseIfModelChanges,让Entity Framework 自动将数据库删除,然后重新创建.不过,这种方式过于残暴,应该使用更人性化的方式,让Entity Framework 帮助我们自动调整数据库架构.并且仍然保留现有数

Flask从入门到精通之使用Flask-Migrate实现数据库迁移

在开发程序的过程中,你会发现有时需要修改数据库模型,而且修改之后还需要更新数据库.仅当数据库表不存在时,Flask-SQLAlchemy 才会根据模型进行创建.因此,更新表的唯一方式就是先删除旧表,不过这样做会丢失数据库中的所有数据.更新表的更好方法是使用数据库迁移框架.源码版本控制工具可以跟踪源码文件的变化,类似地,数据库迁移框架能跟踪数据库模式的变化,然后增量式的把变化应用到数据库中. SQLAlchemy 的主力开发人员编写了一个迁移框架,称为Alembic(https://alembic

Flask 数据库迁移

在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库.最直接的方式就是删除旧表,但这样会丢失数据. 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中. 在Flask中可以使用Flask-Migrate扩展,来实现数据迁移.并且集成到Flask-Script中,所有操作通过命令就能完成. 为了导出数据库迁移命令,Flask-Migrate提供了一个MigrateCommand类,可以附加到flask-script的manager对象上 1.安装模块

[Doctrine Migrations] 数据库迁移组件的深入解析四:集成diff方式迁移组件

场景及优势 熟悉Symfony框架之后,深刻感受到框架集成的ORM组件Doctrine2的强大之处,其中附带的数据迁移也十分方便.Doctrine2是使用Doctrine DBAL组件把代码里面的表结构与实际数据库中的表结构进行对比的方式进行数据迁移.这种方式比之前版本管理的方式更加精准也更方便. Symfony框架是自身ORM组件支持,但是很多项目并没有使用其中的ORM功能,或者有自己的ORM组件,又该如何集成diff方式的迁移呢?下面我们就来完成这个任务. 源码解析 在研究组件源码时,发现一