Java 自动构建脚本以更新postgres中的数据库
我们有一个使用postgres数据库的java系统。 这个数据库经常更改,我们每周更新一次或更少。这些更改是在数据库(DDL)的结构中进行的,通常是在函数和字段中添加新功能 对于数据库中的更改,我们通常使用navicat,如下所示: 1-我们使用navicat对数据库的结构进行了更改,并将SQL复制到一个XML文件中,用于我们所做的每个更改。 2-当我们必须在生产中更新数据库时,我们检查由版本号标识的文件,并更新数据库。 3-然后我们对安装的每个DB重复此操作(总共30个) 我们面临的问题是,由于整个过程都是手动的,很容易忘记将更改复制到XML,因此当我们使用它时,脚本无法工作,或者当系统需要此更改失败时,情况更糟 因此,我们正在寻找一种自动化此任务的方法,我们提出了以下想法: 1-我们对navicat进行了更改 2-将postgres配置为将DDL中的更改记录到CSV文件中 3-稍后,我们读取CSV文件并将更改传递到XML以更新ProduAction DB 我们遇到的问题是,日志将保存所有更改结构的尝试,包括错误,因此如果我们使用该脚本进行更新,它也将失败 有没有办法在postgres的日志中只保存成功的DDL更改 是否有脚本或应用程序来获取DDL更改并自动将其放入脚本中Java 自动构建脚本以更新postgres中的数据库,java,postgresql,automation,ddl,Java,Postgresql,Automation,Ddl,我们有一个使用postgres数据库的java系统。 这个数据库经常更改,我们每周更新一次或更少。这些更改是在数据库(DDL)的结构中进行的,通常是在函数和字段中添加新功能 对于数据库中的更改,我们通常使用navicat,如下所示: 1-我们使用navicat对数据库的结构进行了更改,并将SQL复制到一个XML文件中,用于我们所做的每个更改。 2-当我们必须在生产中更新数据库时,我们检查由版本号标识的文件,并更新数据库。 3-然后我们对安装的每个DB重复此操作(总共30个) 我们面临的问题是,由
有没有更好的方法来自动化这个过程?上面的问题有很多答案:-)我使用了许多方案来管理快速变化的数据库。一种方法是维护一个主数据库(就像您所拥有的那样)。使用dbtoyaml创建数据库的yaml描述。然后在所有(30)个目标上使用yamltodb,这将做一切必要的工作,使目标数据库看起来与主数据库一模一样。我已经使用这个软件6个月了,它太棒了-g我建议您修改您的问题,使其更简洁。我尝试过,但它不支持setof和trigger函数。你使用已安装的pip版本,从git编译它?据我所知,它支持postgres中的所有内容。如果不是,那就是一个bug。