พอย้าย Server ใหม่ ก็อยากใช้ ฐานข้อมูล version ล่าสุดไปเลยใช่มั้ยล่ะ ปัญหาก็คือ มันดันใช้ pg_dump -> pg_restore ตรงๆ เลยไม่ได้ (โดนด่ากลับมา)
pg_dump: error: aborting because of server version mismatch
pg_dump: detail: server version: 16.1; pg_dump version: 15.3
แค่เอาออกมายังไม่ได้เลย (ทำที่ server ใหม่) , แถม พอเอาออกจาก server เดิมได้ ก็เอาเข้าไม่ได้อยู่ดี
pg_restore: error: unsupported version (1.15) in file header
สรุปคือจบ ใช้วิธีนี้ไม่ได้
ด้วยคำสั่งประมาณนี้แทน
pg_dump -v -c --dbname=postgresql://user:password@ip:port/databasename \
-n schema_name -t schema_name.table_name > file_backup.out
จุดสำคัญ option -v -c
ซึ่งไฟล์ที่ได้มา จะใหญ่เบอเร่อเลย เพราะไม่มีการบีบอัด แต่ก็นั่นล่ะเพื่อให้มันใช้ได้ ก็ต้องยอมๆ ไป
อันนี้ต้องเปลี่ยนไปใช้คำสั่ง psql แทนเลย เพราะ เป็นการรันคำสั่ง SQL ธรรมดาจาก text file
psql --dbname=postgresql://user:password@ip:port/databasename < file_backup.out