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
manage.py:添加db命令
第一次使用:
初始化:(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 -> 数据库会更新
由于模型中经常会新加一行或几行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 -> 数据库会更新
相关文章推荐
- postgresql压力测试工具用法以及参数解读
- MariaDB集群Galera Cluster的研究与测试
- MySQL 中 ` 的保留字冲突处理
- 实训复习SQL语句
- (java)使用redis的第一个简单实例
- oracle 建索引
- SQL 操作结果集 -并集、差集、交集、结果集排序
- Windows下安装MongoDB的心得与攻略
- 谓词推入
- mysql分组查询最新数据
- Mysql存储过程总结
- Oracle shutdown(关闭)状态下从spfile中创建pfile
- oracle 笔记(1)
- Oracle 事务
- C# 连接 Oracle 的几种方式
- Oracle处理CLOB超过4000入库问题
- sqlserver、mysql、oracle各自的默认端口号
- mysql 配置文件
- how-to-install-oracle-java-on-ubuntu-14-04
- 快速修改MySQL某张表的表结构