是否有一个工具( Perl、Ruby、online SaaS)可以进行PostgreSQL数据库转储、新模式和迁移(w/o数据丢失)?处理删除和添加依赖关系有点麻烦。
发布于 2011-11-03 20:14:11
简短回答:不。
更长的答案:神奇地确定从模式A到模式B的路径超出了计算机程序的能力,甚至像数据库系统一样复杂。人类需要参与其中。
数据库升级过程应包括创建一个更新脚本(例如,updates-1.3.0.sql),以完成适当和必要的工作,包括:
CREATE TABLE、ALTER TABLE和DROP TABLE命令CREATE INDEX和DROP INDEX命令VACUUM (或酌情执行VACUUM FULL / VACUUM ANALYZE )然后,将当前的模式版本(可以存储在DB中)与所拥有的升级脚本列表进行比较,并执行升级脚本,以便转换到新模式。
例如,如果您正在运行模式修订1.2.0并希望转换到1.3.0,则需要应用
updates-1.2.1.sql,updates-1.2.2.sql,.。. updates-1.3.0.sql
关于升级脚本的一些提示:
BEGIN )。。。ROLLBACK。。。COMMIT)。如果出了问题,您希望能够在不让数据库处于异常/不一致状态的情况下中止整个崩溃。RAISE EXCEPTION/RAISE NOTICE),并确保执行升级sql脚本的程序在遇到错误时停止。https://serverfault.com/questions/327545
复制相似问题