• 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的用法。当然,如果你实在记不住,再看看我的这篇博文。

  • 相关阅读:
    Android UI基本结构
    深入理解 Java中的 流 (Stream)
    StringBuffer和StringBuild区别
    HttpClient和HttpURLConnection的区别
    Http会话
    WKWebView 实现iOS与H5的交互<转>
    UIVisualEffectView实现毛玻璃效果
    Mac下配置Eclipse <转>
    最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解<转>
    Bitcode是什么,如何配置?
  • 原文地址:https://www.cnblogs.com/fengqiang626/p/13298368.html
Copyright © 2020-2023  润新知