zoukankan      html  css  js  c++  java
  • Alembic

    Alembic 如何使用?

    数据库版本化

    ​ 通常我们会将我们的代码放入到某个VCS(版本控制系统)中,进行可追溯的版本管理。一个项目除了代码,通常还会有一个数据库,这个数据库可能会随着项目的演进发生变化,甚至需要可以回滚到过去的某个状态,于是一些工具将数据库的版本化也纳入了管理。

    ​ 在之前的数据库操作中,我们新增一个字段是不是每次都得删除数据库表,然后再重新将新创建的数据库表映射到数据库中。这样操作是不是很蛋疼?是吧?于是Sqlalchemy作者拜尔为了解决这一问题,开发了Alembic这一迁移工具。

    Alembic 作用:

    方便数据库与ORM模型的迁移与映射。

    Alembic 安装:

    pip install alembic
    

    初始化

    alembic init YOUR_ALEMBIC_DIR
    '''
    随后你的项目目录应该会新增一个alembic.ini文件以及一个YOUR_ALEMBIC_DIR目录,最好指定一个符合自己项目风格的命名。
    '''
    

    接下来的操作都是围绕这个目录

    • alembic.ini 提供了一些基本的配置
    • env.py 每次执行Alembic都会加载这个模块,主要提供项目Sqlalchemy Model 的连接
    • script.py.mako 迁移脚本生成模版
    • versions 存放生成的迁移脚本目录
    '''
    yourproject/
        alembic.ini
        YOUR_ALEMBIC_DIR/
            env.py
            README
            script.py.mako
            versions/
    '''
    

    你需要编辑alembic.ini文件去指定Alembic的数据库连接

    sqlalchemy.url = mysql+pymysql://root:admin@localhost/alembic_demo
    # 注:和数据库连接信息一样
    

    找到env.py文件,修改target_metadata参数

    import os
    import sys
    import alembic_demo
    
    # 把当前项目路径加入到path中
    sys.path.append(os.path.dirname(os.path.dirname(__file__)))
    
    target_metadata = alembic_demo.Base.metadata
    
    

    创建数据库迁移文件,命令如下:

    alembic revision --autogenerate -m "first commit"
    

    创建成功会在version目录下创建一个迁移文件。

    将迁移文件映射到数据库中,命令如下:

    alembic upgrade head
    

    OK,数据库表已成功映射到数据库中。

    步骤很多,但只要你多敲几遍,你就会熟悉掌握alembic的用法。当然,如果你实在记不住,再看看我的这篇博文。

  • 相关阅读:
    Golang 爬虫02
    Golang使用正则
    gin框架对接快递100 查询快递跟踪记录 Golang实现快递查询
    Jetbrains系列产品2019.3.4最新激活方法[持续更新]
    Linux下安装Fiddler
    Golang 爬虫01
    Github进行fork后如何与原仓库同步
    Pr 的导出视频
    Linux-平均负载指数
    Linux-进程管理命令
  • 原文地址:https://www.cnblogs.com/fengqiang626/p/13298368.html
Copyright © 2011-2022 走看看