美文网首页Python/Go开发
sqlalchemy数据迁移库alembic的使用

sqlalchemy数据迁移库alembic的使用

作者: 忘了呼吸的那只猫 | 来源:发表于2021-06-23 16:38 被阅读0次
    • 1.首先安装alembic
    pip install alembic
    
    • 2.初始化 alembic 仓库

    在项目目录打开终端,然后执行命令 一下命令,创建一个名叫 alembic 的仓库。

    alembic init alembic 
    

    创建成功之后,会生成以下文件


    • 3.修改配置文件

    alembic.ini 中设置数据库的连接

    sqlalchemy.url =driver://user:pass@localhost/dbname 
    

    比如以 mysql 数据库为例,则配置后的代码为:

    sqlalchemy.url = mysql+pymysql://root:root@localhost/firstsqlalchemy?charset=utf8
    

    注意配置访问端口(和你配置文件中连接数据库的字符串一样就行)

    • 4.然后在env.py文件导入你创建模型的文件
    import sys,os
     
    sys.path.append(os.path.dirname(os.path.dirname(__file__)))
    import flask_alembic_dmeo
    

    注意:我的模型文件这项目的根目录下所以这样写,如果在其他目录写法是不一样的

    • 找到env.py文件中的target_metadata = None
      如果你使用的flask_sqlalchemy改为:
    target_metadata = flask_alembic_dmeo.db.Model.metadata
    

    如果你使用的sqlalchemy改为:

    target_metadata = flask_alembic_dmeo.Base.metadata
    

    这里的db.Model和Base就不多说了,不知道的可以查一下
    到这里就配置完成了

    • 5.使用
    • 将当前的模型生成迁移文件
    alembic revision --autogenerate -m "first" 将当前模型中的状态生成迁移文件
    
    • 更新到数据库
    alembic upgrade head
    

    -回退到上一版本

    alembic downgrade head
    

    命令和参数

    init:创建一个 alembic 仓库。
    revision:创建一个新的版本文件。
    --autogenerate:自动将当前模型的修改,生成迁移脚本。
    -m:本次迁移做了哪些修改,用户可以指定这个参数,方便回顾。
    upgrade:将指定版本的迁移文件映射到数据库中,会执行版本文件中的 upgrade 函数。如果有多个迁移脚本没有被映射到数据库中,那么会执行多个迁移脚本。
    [head]:代表最新的迁移脚本的版本号。
    downgrade:会执行指定版本的迁移文件中的 downgrade 函数。
    heads:展示head指向的脚本文件版本号。
    history:列出所有的迁移版本及其信息。
    current:展示当前数据库中的版本号。另外,在你第一次执行 upgrade 的时候,就会在数据库中创建一个名叫 alembic_version 表,这个表只会有一条数据,记录当前数据库映射的是哪个版本的迁移文件。
    

    相关文章

      网友评论

        本文标题:sqlalchemy数据迁移库alembic的使用

        本文链接:https://www.haomeiwen.com/subject/dtmbyltx.html