假设给你一个 postgresql 转储文件,不知道它是脚本文件还是归档文件,你将如何检查文件的类型?
我想知道这一点,因为这与恢复转储文件时使用什么命令的问题有关。
使用的pgsql版本是9.6.13。
在Unix上,您可以使用
file
命令来确定它是否是纯文本文件。
但我会使用
pg_restore -l dumpfile
:如果出现错误,它是纯格式转储。
这可以在 Bash 中完成工作:
#!/bin/bash
DUMP_FILE="/path/to/your/database_dump.sql"
if [[ $(pg_restore -l "${DUMP_FILE}" 2>/dev/null) ]];
then
do stuff with pg_restore
else
do stuff with psql
fi