使用python生成Postgresql数据库备份

时间:2019-06-13 02:40:20

标签: python postgresql

我是python和sql的新手。

  1. 我想使用python脚本列出数据库中的所有表
  2. 我想使用python为现有的postgresql表创建sql查询

有人可以提出解决方案吗? ???

1 个答案:

答案 0 :(得分:1)

您的需求不是很清楚,请提供有关您的环境的更多信息。为什么不真正使用python呢?您可以使用pg_dump工具并使用bash脚本设置计时器或均匀设置吗?

pg_dump dbname > dbname.bak

您可以恢复旧数据库.bak:

psql dbname < dbname.bak

不需要sql。

如果确实需要使用python和SQL查询,请使用psycopg2库建立连接并执行一些SQL查询:

import psycopg2
import psycopg2.extras
def pgsql_connect():
# Try to connect to an existing postgresql database
db = getattr(g,'db_pgsql', None)
if db is None:
    try:
        g.db_pgsql = psycopg2.connect("host=localhost dbname=xxx user=xxxx password=xxxx")
        return g.db_pgsql
    except Exception as e :
        print('Error')

else:
    print('Already connected before')
    return db

db = pgsql_connect()
cursor = db.cursor()
try:
    cursor.execute(" //Your SQL query// select * from Table1;")
    rows = cursor.fetchall()
    cursor.close()
    return rows
except Exception as e :
    print('unavailable')

表1中的行[]。

(这不是备份的好方法)