大器免成

道可道,check out.

当前显示的标签为: 「Alembic」的博文

使用Alembic维护数据库结构

日常的工作就是在数据库上做增删改查操作。在刀耕火种的年代使用SQL文件保存数据库的维护记录,这样的手动操作,效率低,而且容易出错。所以现在的框架里都有专业的工具来管理数据库的维护记录,避免直接操作数据库。Laravel 框架里有 db migration 工具。 Python里使用 Alembic 维护数据。Alembic是SQLAlchemy团队的作品,熟悉SQLAlchemy,对Alembic的使用就不陌生。把数据库操作生成好python文件,就方便进行版本控制。 那如果已有数据库,但是需要生成model code文件,可以使用sqlacodegen(https://github.com/agronholm/sqlacodegen) 简单的用法: sqlacodegen postgresql+psycopg2://postgres:server_pwd@127.0.0.1:5432/test_db --outfile=db_model.py 目前使用的数据库是PostgreSQL。 安装好alembic后,先初始化环境: $ alembic init migrate migrate可以改成其它名字,数据库维护文件保存在这里。执行完成后,项目的根目录会生成一个alembic.ini文件 修改下alembic.ini, sqlalchemy.url = postgresql://postgres:passwd@127.0.0.1:5432/test 简单的环境初始化工作完成。 开始维护数据库 $ alembic revision -m "create account table" -m 参数可以填写这次操作的备注信息。 类似git一样,这个是创建一个维护SQL版本,这个命令执行成功会在versions目录生成一个py文件,文件名类似于1975ea83b712_create_account_table.py,文件名前面的1975ea83b712是版本号,后面是注释信息。 这个文件里两个空方法,upgrade表示升级时执行,downgrade表示回退版本执行。 因为版本号不是数字,所以alembic运行的时候,会执行所有的versions目录里的文件,down_revision为None就是代表第一个文件。 在upgrade、......