有一個PostgreSQL數據庫,我只有有限的訪問權限(例如,我不能使用pg_dump)。我試圖通過從數據庫導出某些表創建本地「鏡像」。我沒有從psql中將錶轉換爲SQL所需的權限。現在,我只是有一個Python腳本,通過我的table_names迭代,選擇所有字段,然後它們導出爲CSV:從PostgreSQL數據庫中提取數據而不使用pg_dump
for table_name, file_name in zip(table_names, file_names):
cmd = """echo "\\\copy (select * from %s)" to stdout WITH CSV HEADER | psql -d remote_db | gzip > ./%s/%s.gz"""%(table_name,dir_name,file_name)
os.system(cmd)
我想如果可能的話不使用CSV,因爲我失去了字段類型和編碼可能會搞砸。首先最好的方法可能是使用\ copy爲表獲取表的生成SQL代碼。接下來最好的將是XML,理想情況下用某種方法保留字段類型。如果這不起作用,我認爲最後的選擇可能是兩個查詢---一個是獲取字段數據類型,另一個是獲取實際數據。
任何想法或建議將不勝感激 - 謝謝!
你如何連接到數據庫? ODBC,JDBC(Jython),Pygres,psycopg? – 2010-05-05 05:59:27
你不能使用pg_dump的情況如何?你認爲你必須擁有什麼樣的權限才能使用pg_dump? – 2010-05-05 09:03:40