使用Python进行Postgresql数据库备份

sha*_*pha 7 python postgresql

我想使用Python代码备份数据库.我想备份一些相关数据表.如何备份以及如何使用"SELECT"语句选择所需的表?

例如

我想从2014-05-01到2014-05-10获取一些表的数据,并将此结果输出为.sql扩展名文件

如何使用python代码获取此格式?如果您不介意,请解释.谢谢.

d1l*_*ger 5

使用 psycopg2 建立数据连接。文档中有不少例子:

http://initd.org/psycopg/

配置数据源后,通过将结果集打印到文件来迭代构建“INSERT INTO”语句的“SELECT”语句的结果。基本上是一些反向逻辑。

这样,如果时间到了并且您需要使用备份文件,您只需运行 SQL 文件,将数据插入回...

例子:

        import psycopg2
        import sys


        con = None

        try:

            con = psycopg2.connect(database='local', user='local', password='local',port='1970')
            cur = con.cursor()
            cur.execute('SELECT x FROM t')
            f = open('test.sql', 'w')
            for row in cur:
              f.write("insert into t values (" + str(row) + ");")
        except psycopg2.DatabaseError, e:
            print 'Error %s' % e
            sys.exit(1)
        finally:
            if con:
                con.close()
Run Code Online (Sandbox Code Playgroud)

然后恢复:

psql <dbname> <username> < test.sql
Run Code Online (Sandbox Code Playgroud)

干杯,