Aerich 数据库迁移是一个 Python 库,用于数据库迁移,支持多种数据库(PostgreSQL、MySQL、SQLite、Oracle),可以用来帮助开发者管理数据库迁移,使数据库结构的变化变得更加简单和可控。
Aerich 目前支持的数据迁移操作有:
下面,我们将通过以下步骤来演示如何使用 Aerich 进行数据库迁移:
Step 1. 安装 Aerich
pip install aerich
Step 2. 创建一个数据库
在此步骤中,我们将为我们的示例创建一个 SQLite 数据库。如下所示:
import sqlite3
db = sqlite3.connect("example.db")
# 创建一个 users 表
db.execute(
"""
CREATE TABLE users (
id INTEGER PRIMARY KEY,
username TEXT NOT NULL,
age INTEGER
)
"""
)
db.close()
Step 3. 初始化 Aerich 配置
在此步骤中,我们需要创建一个配置文件,以告知 Aerich 我们将使用哪种数据库和数据库名称。
创建一个名为 aerich.ini 的文件,然后添加以下内容:
[DEFAULT]
# Aerich 配置的默认值
[database]
# 数据库配置
url = sqlite:///example.db
# 数据库 URL(格式:database://[user:[password]@][host][:port]/database)
table = aerichlog
# Aerich 用于记录迁移历史的表的名称
在这里,我们在 aerich.ini 文件中指定了 SQLite 数据库的 URL,并将 Aerich 日志表的名称设置为 aerichlog。
Step 4. 创建迁移脚本
在此步骤中,我们将向 Aerich 提供一个迁移脚本,以修改数据库结构。
我们创建名为 0001_init.sql 的文件,并将以下 SQL 语句添加到其中:
-- aerich migration
CREATE TABLE users (
id INTEGER PRIMARY KEY,
username TEXT NOT NULL,
age INTEGER,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
在迁移脚本中,我们将 users 表添加了两