PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Backup de banco de dados Postgresql usando Python


Use psycopg2 para estabelecer a conexão de dados. Existem alguns exemplos na documentação:

http://initd.org/psycopg/

Depois de configurar sua fonte de dados, itere pelos resultados de sua instrução "SELECT" criando uma instrução "INSERT INTO" por meio da impressão do conjunto de resultados em um arquivo. Basicamente alguma lógica reversa.

Dessa forma, se chegar a hora e você precisar usar seu arquivo de backup, basta executar o arquivo SQL que insere os dados de volta ...

Exemplo:
        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()

Em seguida, para restaurar:
psql <dbname> <username> < test.sql

Saúde,