สำหรับสายการบินเดียวเช่นการย้ายฐานข้อมูลคุณสามารถใช้--dbname
ตามด้วยสตริงการเชื่อมต่อ (รวมถึงรหัสผ่าน) ตามที่ระบุไว้ในคู่มือ pg_dump
ในสาระสำคัญ.
pg_dump --dbname=postgresql://username:password@127.0.0.1:5432/mydatabase
หมายเหตุ:ตรวจสอบให้แน่ใจว่าคุณใช้ตัวเลือก--dbname
แทนตัวย่อ-d
และใช้คำนำหน้า URI ที่ถูกต้องหรือpostgresql://
postgres://
แบบฟอร์ม URI ทั่วไปคือ:
postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
วิธีปฏิบัติที่ดีที่สุดในกรณีของคุณ (งานซ้ำใน cron) สิ่งนี้ไม่ควรทำเนื่องจากปัญหาด้านความปลอดภัย ถ้ามันไม่ได้สำหรับ.pgpass
ไฟล์ฉันจะบันทึกสตริงการเชื่อมต่อเป็นตัวแปรสภาพแวดล้อม
export MYDB=postgresql://username:password@127.0.0.1:5432/mydatabase
แล้วมีใน crontab ของคุณ
0 3 * * * pg_dump --dbname=$MYDB | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz