alembic 常用命令有哪些?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aimill/article/details/82284674

上节为大家讲解了alembic如何使用?本节就为大家介绍一下alembic常用命令有哪些?

alembic常用命令如下:

在讲这些命令用法之前,我们先建立一个alembic_demo数据库

然后再建立一个alembic_demo项目

alembic_demo.py 文件代码如下:

from sqlalchemy import create_engine,Column,Integer,String
from sqlalchemy.ext.declarative import declarative_base

DIALCT = "mysql"
DRIVER = "pymysql"
USERNAME = "root"
PASSWORD = "admin"
HOST = "127.0.0.1"
PORT = "3306"
DATABASE = "alembic_demo"
DB_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALCT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)
engine = create_engine(DB_URI)

Base = declarative_base(engine)

class User(Base):
    __tablename__ = "user"
    id = Column(Integer , primary_key=True , autoincrement=True)
    name = Column(String(50) , nullable=False)

打开cmd窗口,进入到当前项目虚拟环境中

OK,准备就绪!下面我就分别为大家讲讲这些命令的用法。

第一个:init

语法:alembic init alembic

作用:创建一个alembic 文件/仓库

运行上述代码,会在当前项目创建一个alembic及alembic.ini文件

第二个:revision/--autogenerate/-m

语法:alembic revision --autogenerate -m "first add commit"

作用:生成数据库迁移文件

在创建迁移版本文件的时候,记得先配置好alembic.ini以及env.py文件,由于上节我们已经告诉大家如何配置,在这里我就不再讲解。不知道如何配置的大胸弟可访问此链接(第4步和第5步):https://blog.csdn.net/aimill/article/details/82152173

配置好alembic.ini,env.py文件后,在输入 alembic revision --autogenerate -m "first commit" 命令

运行上诉命令后,打开alembic_demo项目,你会发现在versions文件下多了一个版本文件

注:

1、revision 表示生成一个新的版本文件

2、--autogenerate 表示自动生成迁移文件

3、-m 后面跟修改信息,如果迁移文件很多,可以方便用户理解每个迁移文件的作用及用户回顾

first add commit 可以改成其它名字,我这里为了方便理解,故命名 first add commit

第三个:upgrade

语法:alembic upgrade head

作用:将迁移文件映射到数据库中

我们创建迁移文件后,并没有映射到数据库中,还需输入alembic upgrade head命令将迁移文件映射到数据库中。

在运行之前,我们先确认下alembic_demo数据库没有user表

然后我们在将迁移文件映射到数据库中。

我们再查询下alembic_demo数据库,你会发现alembic_demo数据库下有一张user表

第四个:head

作用:代表迁移文件最新版本号

上面我们做迁移文件映射时,就是用alembic upgrade head来将迁移文件最新版本号映射到数据库,如果有多个迁移脚本版本号时,可以手动输入迁移版本号,例如: alembic upgrade 其它版本号

第五个:heads

语法:alembic heads

作用:可以查看head指向的迁移文件版本号

第六个:current

语法:alembic current

作用:查看当前数据库版本号

第七个:history

语法:alembic history

作用:查看当前数据迁移版本及其信息

以上就是alembic常用命令,文章若有不当之处,欢迎指出!

猜你喜欢

转载自blog.csdn.net/aimill/article/details/82284674