sql >> Database >  >> RDS >> PostgreSQL

Postgresql-databaseback-up met Python

Gebruik psycopg2 om de gegevensverbinding tot stand te brengen. Er zijn nogal wat voorbeelden in de documentatie:

http://initd.org/psycopg/

Nadat u uw gegevensbron hebt geconfigureerd, doorloopt u de resultaten van uw "SELECT"-instructie en bouwt u een "INSERT INTO"-instructie op door de resultatenset naar een bestand af te drukken. Eigenlijk wat omgekeerde logica.

Op die manier, als de tijd rijp is en u uw back-upbestand moet gebruiken, voert u eenvoudig het SQL-bestand uit dat de gegevens weer invoegt...

Voorbeeld:

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

Om vervolgens te herstellen:

psql <dbname> <username> < test.sql

Groetjes,



  1. Hoe kan (of kan ik) DISTINCT SELECTEREN op meerdere kolommen?

  2. RAW SQL-query met Zend Framework

  3. MySQL:hoe fulltext zoeken in meerdere tabellen te maken

  4. Postgresql-query tussen datumbereiken