sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgresql-databassäkerhetskopiering med Python

Använd psycopg2 för att upprätta dataanslutningen. Det finns en hel del exempel i dokumentationen:

http://initd.org/psycopg/

När du har konfigurerat din datakälla, iterera genom resultaten av din "SELECT"-sats och bygg en "INSERT INTO"-sats genom att skriva ut resultatuppsättningen till en fil. I princip en omvänd logik.

På så sätt, om det är dags och du behöver använda din säkerhetskopia, kör du enkelt SQL-filen som infogar data tillbaka i...

Exempel:

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

Sedan för att återställa:

psql <dbname> <username> < test.sql

Skål,



  1. Hur får man id:t för den senast infogade raden med preparerat statement?

  2. Konvertera Play! ramutveckling från MySQL till PostgreSQL

  3. Underfråga med LIMIT i Doctrine

  4. Återanvänd aliasfält i SQL SELECT-sats