如何从 python 脚本迁移 posgres 数据库?

问题描述 投票:0回答:0

例如我们在

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 脚本中将它用作模块,而不是命令行工具。

python python-3.x postgresql database-migration
© www.soinside.com 2019 - 2024. All rights reserved.