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)
第一次使用:
- 启动初始化过程:使用(venv) python manage.py db init 这一命令将在当前项目目录中生成一个名为migrations的目录,并将所有的迁移脚本存放在其中。
- 创建初始版本:运行(venv) python manage.py db migrate -m "initial migration" 命令后 会生成一个新的版本号并放置在migrations/versions目录下。随后 检查该目录下的version.py文件 可以查看并验证项目的表和字段定义。
- 执行升级操作:通过执行(venv) python manage.py db upgrade 命令 系统将会更新当前项目的数据库文件内容 包括所有表和字段的数据 同时原有数据得到完整保留。
后缀更新:
- 维护数据字段(models.py)
- 再次运行以下命令:db migrate -m相当于将修改提交到/migrate目录;
而使用db upgrade则表示将进行数据库升级。
全部评论 (0)
还没有任何评论哟~
