例如我们在
db_v1.sql
文件中定义了一个数据库:
CREATE TABLE a (
column1 INTEGER,
column2 VARCHAR(100)
);
现在,我们正在进一步开发模式,添加一些列,可能是新表、关系等。所以,
db_v2.sql
看起来像这样:
CREATE TABLE a (
column1 INTEGER,
column2 VARCHAR(200),
column3 BOOLEAN,
dt TIMESTAMP,
b_id INTEGER,
FOREIGN KEY (b_id) REFERENCES b(id)
);
CREATE TABLE b (
id SERIAL PRIMARY KEY,
column1 VARCHAR(100)
);
所以,现在我们想将旧的“v1”数据库模式“进化”或“迁移”到新的。
该程序将创建一个迁移计划,其中将列出从
db_v1.sql
状态到 db_v2.sql
所需采取的所有步骤。例如。它会输出一个.sql
文件:
ALTER TABLE a ALTER COLUMN column2 TYPE VARCHAR(200);
ALTER TABLE a ADD COLUMN column3 BOOLEAN;
ALTER TABLE a ADD COLUMN dt TIMESTAMP;
...
此外,理想情况下,可以使用正在运行的数据库服务器作为
db_v1.sql
文件并从中生成迁移计划。
有没有我可以用于
postgres15
和python3
的工具?理想情况下,我可以从 python 脚本中将它用作模块,而不是命令行工具。