我写了一个脚本来REINDEX索引数据库中的索引。这是其中之一:
echo -e "\nreindex for unq_vbvdata_vehicle started at: `date "+%F %T"`" >> ${LOG_FILE}
psql -U ${USERNAME} -h ${HOSTNAME} -d ${DBNAME} -c "REINDEX INDEX scm_main.unq_vbvdata_vehicle;"
if [[ ${?} -eq 0 ]]; then
echo "reindex for unq_vbvdata_vehicle finished at: `date "+%F %T"`" >> ${LOG_FILE}
else
echo "reindex for unq_vbvdata_vehicle failed" >> ${LOG_FILE}
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
问题是我无法在独立模式下运行此脚本。psql每次运行都提示输入密码。还有两个限制:
我无法在没有密码的数据库上创建用户。
因为REINDEX锁表,我应该sleep <num>在每个REINDEX.
有没有自动解决方案?