I wrote a script to REINDEX
indexes in a database. Here is one of them:
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
The problem is I can not run this script in standalone mode. psql
is prompting password every time it runs. There is also two limitations:
I can not create a user on database with no password.
Because
REINDEX
locks tables, I should usesleep <num>
between eachREINDEX
.
Is there any automatic solution?