您的位置:首页 > 数据库

Flask 数据库迁移工具 flask-migrate

2016-06-28 16:54 671 查看
新数据库迁移 flask-migrate

由于模型中经常会新加一行或几行column (比如用来保存账户的确认状态),此时要修改 models.py,并执行一次新数据库迁移

具体步骤:

app\models.py、app\__init.py、manage.py里面,设置好 db的引用关系

__init__.py:初始化db

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
db.init_app(app)
config[config_name].init_app(app) # config.py里,指定了数据库文件,比如 mysql:///, sqlite:///
models.py: 设置好表格、字段属性
from . import db, login_manager
class Order(db.Model):
__tablename__ = 'orders'    # 订单表格
id = db.Column(db.Integer, primary_key=True)
body = db.Column(db.Text)
# 其它表格。。。

manage.py:添加db命令
from app import create_app, db
from flask_script import Manager, Shell
from flask_migrate import Migrate, MigrateCommand
app = create_app(os.getenv('FLASK_CONFIG') or 'default')
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)


第一次使用:

初始化:(venv)  python manage.py db init 这个命令会在项目下创建 migrations 文件夹,所有迁移脚本都存放其中。
创建第一个版本:(venv) $ python manage.py db migrate -m "initial migration"  检查migrations\versions,会新建一个版本.py,检查里面表格及字段
运行升级 (venv) $ python manage.py db upgrade,会把项目使用的数据库文件,更新为新的表格、字段,同时保留数据

后缀更新:

更新表格的字段 (models.py)
再次运行一下 db migrate -m -> 相当于commit 更新到/migrate目录
db upgrade -> 数据库会更新
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: