ฉันมักจะสร้างฐานข้อมูลลูกค้า variuos ใหม่บนนักเทียบท่าในเครื่อง
เพื่อทดสอบฟังก์ชัน ERP ใหม่ในสภาพแวดล้อมการพัฒนา
ดังนั้น ไฟล์ดัมพ์ของ PostgreSQL มักจะเริ่มต้นด้วย:
--
-- ดัมพ์ฐานข้อมูล PostgreSQL
--
-- ดัมพ์จากฐานข้อมูลเวอร์ชัน 13.3 (Ubuntu 13.3-1.pgdg20.04+1)
-- ดัมพ์โดย pg_dump เวอร์ชัน 13.3 (Debian 13.3-1.pgdg100+1)
...
นั่นเป็นสาเหตุที่สคริปต์ทุบตีของฉัน 'restorefromdump.sh' (สร้างนักเทียบท่าชั่วคราว
ของเซิร์ฟเวอร์ postgresql รุ่นที่เหมาะสมสำหรับการจัดการไฟล์ดัมพ์)
เริ่มต้นด้วย:
#!/bin/bash
DBDUMP=$1
DUMPFROM=$(grep "^-- ถูกทิ้ง*จาก" "$DBDUMP")
DUMPVERSION_inclSpaces=$(grep -o '^-- ทิ้งจาก.*(' "$DBDUMP" | grep -o -E '[0-9*.]+[^version]')
DUMPVERSION="$(echo -e "${DUMPVERSION_inclSpaces}" | tr -d '[:space:]')"
REMOTEPGVER=postgres:$DUMPVERSION
# เรียกใช้ฟังก์ชัน 'buildtmpdocker' เพื่อสร้างนักเทียบท่า postgres ชั่วคราว
buildtmpdocker $REMOTEPGVER
...
หลังจากคำสั่งโดยตรง './restorefromdump.sh *.dmp' ดูเหมือนว่าจะทำงานได้อย่างมีประสิทธิภาพ - รู้จักเวอร์ชันดัมพ์อย่างถูกต้อง
แต่อาจจะมีวิธีที่ดีกว่า?
คุณเคยรู้จักเวอร์ชันภายในไฟล์ดัมพ์ด้วยสคริปต์ Bash หรือไม่