PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Postgresql архивиране на база данни с помощта на Python

Използвайте psycopg2, за да установите връзка за данни. Има доста примери в документацията:

http://initd.org/psycopg/

След като конфигурирате своя източник на данни, преминете през резултатите от вашия оператор "SELECT", изграждайки израз "INSERT INTO" чрез отпечатване на набора от резултати във файл. По принцип някаква обратна логика.

По този начин, ако дойде моментът и се наложи да използвате архивния си файл, просто стартирайте 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()

След това, за да възстановите:

psql <dbname> <username> < test.sql

Наздраве,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как се среща с математика, която игнорира годината?

  2. PSQLException:текущата транзакция е прекратена, командите се игнорират до края на блока на транзакцията

  3. Обобщена заявка за 50M+ таблица с редове в PostgreSQL

  4. Извличане на коментари от PostgreSQL DB

  5. Проверете дали колоната съществува, когато има множество таблици с едно и също име в различни схеми (PSQL 8.2)