Advertisement

Flask 数据库迁移工具 flask-migrate

阅读量:

新数据库迁移 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)

第一次使用:

  1. 启动初始化过程:使用(venv) python manage.py db init 这一命令将在当前项目目录中生成一个名为migrations的目录,并将所有的迁移脚本存放在其中。
  2. 创建初始版本:运行(venv) python manage.py db migrate -m "initial migration" 命令后 会生成一个新的版本号并放置在migrations/versions目录下。随后 检查该目录下的version.py文件 可以查看并验证项目的表和字段定义。
  3. 执行升级操作:通过执行(venv) python manage.py db upgrade 命令 系统将会更新当前项目的数据库文件内容 包括所有表和字段的数据 同时原有数据得到完整保留。

后缀更新:

  1. 维护数据字段(models.py
  2. 再次运行以下命令:db migrate -m相当于将修改提交到/migrate目录;
    而使用db upgrade则表示将进行数据库升级。

全部评论 (0)

还没有任何评论哟~