FastAPI.9
Alembic
一、什么是Alembic
- Alembic是一种用于数据迁移和版本控制的工具,特别适用于Python编写的数据库应用程序。它允许你按照预定的数据库模型定义,在不丢失现有数据的情况下进行数据库模式的更改。
- Alembic的一些关键概念和功能
1. 迁移文件(Migration Files): Alembic通过迁移文件定义数据库模式的更改。每个迁移文件都包含一组变更指令,比如创建新表格、添加或删除列等等。 2. 版本控制: 迁移文件按照版本进行控制和管理。每个版本对应一个迁移文件。Alembic会跟踪应用的迁移历史,并根据需要自动应用最新的迁移文件。 3. 自动创建迁移文件: Alembic可以自动检测数据库模型的更改,并生成相应的迁移文件。你只需运行一个命令,就可以生成迁移文件,省去了手动编写迁移文件的工作。 4. 命令行工具: Alembic提供了一个命令行工具,可以方便地执行各种数据库迁移任务,如初始化迁移环境、创建和应用迁移文件等。 5. 数据库支持: Alembic支持多种流行的数据库,包括MySQL、PostgreSQL、SQLite等。 6. Python集成: Alembic是基于Python的,可以灵活地集成到你的Python应用程序中,并使用Python代码来编写和执行数据库迁移逻辑。
二、Alembic的配置文件alembic.ini
- alembic.ini是Alembic的配置文件,其中包含了一些关键的配置信息,用于指定Alembic工具的行为和连接到数据库的方式。
- 常见的alembic.ini配置选项
1. sqlalchemy.url: 连接数据库的URL。根据你使用的数据库类型和具体的设置,可以在这里指定数据库的连接信息,比如数据库类型、主机名、端口、用户名、密码等。 2. script_location: 迁移文件的存储位置。这个选项指定了存放迁移文件的目录路径。迁移文件通常存储在项目的一个特定目录中,用于管理数据库模式的更改。 3. version_locations: 版本文件的存储位置。这个选项指定了存放版本文件的目录路径。版本文件是记录每个迁移版本的文件,用于跟踪应用的迁移历史。 4. databases: 数据库配置选项。如果你的应用程序使用多个数据库,你可以在这里配置每个数据库的连接信息。 5. lude_object和exclude_object: 包含和排除对象的过滤配置。你可以使用这些选项来过滤掉特定的数据库对象,比如表格、索引等,或者只包含特定的对象。 6. ration_dir和upgrade: 迁移文件和升级脚本的配置选项。你可以在这里指定迁移文件和升级脚本的存储位置和命名规则。
- alembic.ini文件中的配置项可以分为以下几个部分:
在配置文件的最后部分,有一个sqlalchemy.url项,是连接到数据库的URL。你可以在这里指定具体的数据库连接信息,比如驱动程序、用户名、密码、主机名等。这些配置项用于指定Alembic工具的行为,比如指定迁移文件的存储位置、数据库连接信息、日志记录等。根据具体项目的需求和数据库配置,可以根据需要调整和添加这些配置选项。[alembic] 部分:包含了一些全局的配置选项。 script_location:指定了存放迁移文件的目录路径。 prepend_sys_path:指定了sys.path路径,可以将其添加到sys.path中。 timezone:指定了在迁移文件和文件名中使用的时区。 version_path_separator:指定了版本文件存放路径的分隔符,可以使用os.pathsep或其他指定的分隔符。 [post_write_hooks] 部分:定义了在生成新的迁移脚本后要运行的脚本或Python函数。 [loggers]、[handlers]和[formatters] 部分:定义了日志记录的配置。 [logger_root]、[logger_sqlalchemy]和[logger_alembic] 部分:定义了不同的日志记录器和级别。 [handler_console] 部分:定义了控制台处理程序,将日志输出到标准错误流。 [formatter_generic] 部分:定义了日志消息的格式和日期格式。
三、如何使用
- 安装:
pip install alembic
- https://alembic.sqlalchemy.org/en/latest/tutorial.html