Alembic对数据库版本管理的使用方法
2016-11-04 11:46
1006 查看
对于SQLALCHEMY ORM 定义的数据库,数据库的设计不一定能一步到位,在项目运行中ORM的定义model版本更改后,需要使用SQL修改数据库,当数据库结构复杂且存储数据较多时,更改起来就比较麻烦,alembic就是为了解决这个问题而产生的。通过alembic可以放心修改model中表的结构内容,数据库的具体修改交给alembic。
下面介绍在python flask中alembic的使用(在virtual env下):
1 安装
安装十分简单,因为是Python官方源里的包:
*随后项目目录应该会新增一个alembic.ini文件以及一个alembic(代码中后一个参数,可自定义)目录。
alembic.ini 提供了一些基本的配置
env.py 每次执行Alembic都会加载这个模块,主要提供项目Sqlalchemy Model 的连接
script.py.mako 迁移脚本生成模版
versions 存放生成的迁移脚本目录
*需要编辑alembic.ini文件去指定Alembic的数据库连接:
*这里不使用alembic.ini,备注掉上面数据库连接,采取配置env.py的方法:
3 管理数据库
下面介绍在python flask中alembic的使用(在virtual env下):
1 安装
安装十分简单,因为是Python官方源里的包:
pip install alembic
2 初始化alembic环境
alembic init alembic
*随后项目目录应该会新增一个alembic.ini文件以及一个alembic(代码中后一个参数,可自定义)目录。
alembic.ini 提供了一些基本的配置
env.py 每次执行Alembic都会加载这个模块,主要提供项目Sqlalchemy Model 的连接
script.py.mako 迁移脚本生成模版
versions 存放生成的迁移脚本目录
*需要编辑alembic.ini文件去指定Alembic的数据库连接:
sqlalchemy.url = driver://user:pass@localhost/dbname
*这里不使用alembic.ini,备注掉上面数据库连接,采取配置env.py的方法:
import sys from os.path import dirname, abspath sys.path.append(dirname(dirname(abspath(__file__)))) from app import db, create_app from app.models import * app = create_app() # this is the Alembic Config object, which provides # access to the values within the .ini file in use. config = context.config config.set_main_option('sqlalchemy.url', app.config.get('SQLALCHEMY_DATABASE_URI')) # Interpret the config file for Python logging. # This line sets up loggers basically. fileConfig(config.config_file_name) # add your model's MetaData object here # for 'autogenerate' support # from myapp import mymodel # target_metadata = mymodel.Base.metadata target_metadata = db.metadata
3 管理数据库
*创建数据库版本: alembic revision --autogenerate -m 'what changed in model' *升级数据库版本: alembic upgrade head *回滚数据库版本: alembic downgrade 'version in /alembic/versions' Over.
相关文章推荐
- 使用alembic进行数据库版本管理
- 使用alembic进行数据库版本管理
- ARX二次开发中使用DAO方式访问数据库,导致AutoCAD2004及以上版本退出时报错的解决方法
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- Spring Security教程(12)---- 使用数据库来管理方法
- 使用Source Safe for SQL Server解决数据库版本管理问题(转载)
- 关于mysql 数据库使用spring 2.0低版本 JdbcTemplate.queryForList 查询结果别名不起作用的解决方法
- VSS实现版本控制管理的一些使用方法
- 【转】Android使用SQLiteOpenHelper对数据库进行版本管理【学习记录】
- 使用升级脚本进行数据库版本管理及发布
- ARX二次开发中使用DAO方式访问数据库,导致AutoCAD2004及以上版本退出时报错的解决方法
- Spring Security教程(12)---- 使用数据库来管理方法
- ARX二次开发中使用DAO方式访问数据库,导致AutoCAD2004及以上版本退出时报错的解决方法
- Android 使用SQLiteOpenHelper对数据库进行版本管理
- .Net中VSS实现版本控制管理的一些使用方法
- 【视频】配置信息管理 的 使用方法(一):数据库文档(Excel)的格式说明
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- 软件的版本管理 VisualSVN Server的配置和使用方法 图文
- 用SVN进行版本控制和项目管理的安装配置和使用方法
- 使用Source Safe for SQL Server解决数据库版本管理问题