最近こんなことがありました
仕事で数日に一度DBにアクセスして、とあるSQLを流さなければいけない。
ただ、そのまま流せばいいというわけではなく一部を書き換えなければいけない。
どこを書き換えるかは決まっているがその都度生成されるuuidに書き換えるので、具体的に何に書き換えるのかは決まっていない。
なので、書き換える値をコピーしてローカルに置いてあるSQLを開いて、編集して、DBにアクセスして、流す。
一回ならまだしも定期的にとなると面倒で面倒でならない。
少し楽をしたいなと思いました。
というわけでターミナルでポチっとできるようにしてみました
#!/bin/zsh
if [[ $1 =~ [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} ]]
then
QUERY=$(sed -e "s/hogehoge/$1/g" $HOME/query.sql);
psql "DB名" -c "$QUERY";
echo 'done'
else
echo 'uuidが無効です'
fi
こんな感じ
まず引数がuuidの体を成しているか確認して、
QUERYに書き換えたsqlを格納して、
psqlコマンドで実行。
.zshrcに
alias script='~/script.sh'
こんな感じでaliasを作ってどこからでも触れるようにしてひとまず完成。
また面倒になったら改良しようかと思います。