โปรแกรมมแปลง PostgreSQL 10 ไป Restore 9.6 (สำหรับไฟล์ที่ backup เป็น .sql)

PostgreSQL แชร์ความรู้เกี่ยวกับ PostgreSQL การใช้งาน ฟังก์ชั่นต่างๆ การเขียน SQL แบบ PGSQL

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41123
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

โปรแกรมมแปลง PostgreSQL 10 ไป Restore 9.6 (สำหรับไฟล์ที่ backup เป็น .sql)

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

script ข้างล่างนี้เป็นโปรแกรมมช่วยให้เรา สามารถ restore จากเวอร์ชั่นที่สูงกว่าไปเวอร์ชั่นที่ตำกว่าได้ เช่น แปลง PostgreSQL 10 ไป Restore 9.6 (สำหรับไฟล์ที่ backup เป็น .sql) ส่วนถ้าใครย้ายเวอร์ชั่นจากน้อยกว่า ไปเวอร์ชั่นใหม่กว่าจะไม่มีปัญหานี้
ตั้งชื่อ convert10to9.py

โค้ด: เลือกทั้งหมด

#!/usr/bin/env python3
import sys

#
#  Downgrades pg_dump 10 script to 9.x
#  removing 'AS integer' from 'CREATE SEQUENCE' statement
#
#  Usage:
#       $ python3 pgdump_10_to_9.py < test10.sql > test9.sql
#  or:
#       $ cat test10.sql | ./pgdump_10_to_9.py > test9.sql
#
#  To obtain a compressed 9.x sql script from a compressed 10 sql script:
#
#       $ gunzip -c test10.sql.gz | ./pgdump_10_to_9.py | gzip > test9.sql.gz
#

inside_create_sequence = False
for row in sys.stdin.readlines():

    if inside_create_sequence and row.strip().lower() == 'as integer':
        pass
    else:
        print(row, end='', flush=True)

    inside_create_sequence = row.strip().startswith('CREATE SEQUENCE ')
วิธีใช้งาน
เรียกใช้คำสั่งรัน Python

โค้ด: เลือกทั้งหมด

python3 convert10to9.py < backup-pg10.sql > pg9.sql
เมื่อโปรแกรมทำงานเสร็จก็ก็เอาไฟล์ backup PostgreSQL ของเวอร์ชั่น 10 แปลงเป็น เวอร์ชั่น 9 เพื่อนำไป restore ได้แล้ว
ดูวิธีการ Restore ได้ที่นี่ สำหรับใครติดตั้ง PostgreSQL หลายเวอร์ชั่น อย่าลืม กระทู้นี้นะ ยังมีประโยชร์เสมอ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 31