我写一个shell脚本(将成为cronjob),将:
1:转储我的生产数据库
2:将转储导入我的开发数据库
在步骤1和2之间,我需要清除开发数据库(删除所有表?)。如何从shell脚本最好实现?到目前为止,它看起来像这样:
#!/bin/bash time=`date '+%Y'-'%m'-'%d'` # 1. export(dump) the current production database pg_dump -U production_db_name > /backup/dir/backup-${time}.sql # missing step: drop all tables from development database so it can be re-populated # 2. load the backup into the development database psql -U development_db_name < backup/dir/backup-${time}.sql
提前谢谢了!
马丁
如果实际上不需要以纯文本.sql脚本文件格式将数据库备份到磁盘上,则可以通过管道将pg_dump和pg_restore直接连接在一起。
要删除和重新创建表,可以使用pg_dump的–clean命令行选项发出SQL命令,以在创建它们之前清除(删除)数据库对象。 (这不会删除整个数据库,只是每个表/序列/索引/等),然后重新创建它们。
上面两个看起来像这样:
pg_dump -U username --clean | pg_restore -U username
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。