0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

HerokuAdvent Calendar 2022

Day 1

herokuデプロイが楽になるシェルスクリプトを書いてみた

Last updated at Posted at 2022-11-30

前節

AWSでDjangoの開発をしようにもなぜか動かない
nodejsとかならfirebaseとかもあるかもしれないけど
Djangoを勉強してしまった僕にとっては例え無料プランがなくなろうともherokuからは逃げられない
せっかくだからアドベントカレンダー書いてみようと思ったらあったのでついでにあげてみた

本題

最近bashScriptを知りその素晴らしさに感嘆した
使ってれば覚ええるじゃんといわれても覚えるまでが面倒なのだ
ということで開発しているにあたり大体使うherokuCliをbashスクリプトとして組み込み少しの楽と調べる時間を短縮した

使う人はいないと思うがもしいれば,

debugApp="debug"
productApp="product"

の部分を自分のアプリの名前にすればいいと思います
顔文字はご愛嬌

if [ "$1" = '-h' ]; then
  echo
  echo \#\#\#   -m        : 本番環境
  echo \#\#\#   -d        : for debug app
  echo \#\#\#
  echo \#\#\#     manage  : その先も含めた "manage.py"
  echo \#\#\#     on      : メンテナンスモード on
  echo \#\#\#     off     : メンテナンスモード off
  echo \#\#\#     log     : リアルタイムlogの表示
  echo \#\#\#     push    : 今のbranchをpush
  echo \#\#\#     reset   : dbリセット
  echo \#\#\#     bash    : bashの表示
  echo \#\#\#     merge   : -dのみ developへマージ
  echo \#\#\#     copy    : 本番からdebug用へdbのcopy
  exit 0
elif [ "$1" = '' ] || [ "$2" = '' ]; then # 入れ忘れ
  echo -h to helop
  echo "(*'-')"
  exit 0
fi

debugApp="debug"
productApp="product"

if [ $1 = '-m' ]; then
  app=$productApp
elif [ $1 = '-d' ]; then
  app=$debugApp
fi

if [ $2 = 'manage' ]; then
  comd="heroku run python manage.py $2 $3 $4 $5 -a=$app"
elif [ $2 = 'on' ]; then
  comd="heroku maintenance:on -a=$app"
elif [ $2 = 'off' ]; then
  comd="heroku maintenance:off -a=$app"
elif [ $2 = 'log' ]; then
  comd="heroku logs -t -a=$app"
elif [ $2 = 'push' ]; then
  ===
  branch=`git rev-parse --abbrev-ref HEAD`||exit
  comd="git push heroku_dev $branch:master $3"
  # comd="git push heroku_dev for_winter_onetime:master"
elif [ $2 = 'reset' ]; then # dbのリセット用
  echo -n dbを削除します, 良ければ'yes'を入力:
  read str 
  if [ str = 'yes' ]; then
    echo delete
    heroku pg:reset -a=$debugApp
  fi
  return 0
elif [ $2 = 'bash' ]; then # bash
  comd="heroku run bash -a=$app"
elif [ $2 = 'merge' ]; then # bash
  if [ $1 = "-m"]; then
    return 0
  fi
  branch=`git rev-parse --abbrev-ref HEAD`||exit
  git checkout develop
  comd="git merge $branch"
elif [ $2 = 'copy' ]; then # bash
    comd="heroku pg:copy $productApp::DATABASE_URL DATABASE_URL -a $debugApp"
else
  comd="heroku $2 $3 $4 $5 $6 $7 -a=$app"
fi

echo "$comd"

read -p 'ok? (*`・ω・)ゞ (enter): ' yn
case "$yn" in
  "") $comd ;;
  *) echo "(´・ω・`)ノo >bye"
    exit 
    ;;
esac

終わりに

ゆうて本番で使っちゃだめらしいね
AWS勉強しよ
(´・ω・`)ノo

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?