herokuからcloneできないソースコードをサルベージする
太古の昔にデプロイしていたサービスでgit管理もしていなくて、でもherokuにはソースコードがあるはず…。といったコードをサルベージする方法を書き残します。
heroku remoteからgit cloneできればよかったんですが、できなかった(時間が経ちすぎた?)ので、この方法をとりました。
heroku run '/bin/bash -c "tar -czf /opt/app.tgz ./ && base64 /opt/app.tgz"' --app $HEROKU_APP > app.base64 && \ base64 -d ./app.base64 > app.tgz && \ mkdir -p app && tar -xzf app.tgz -C app
要はアーカイブにしたものをbase64でホストコンピュータにリダイレクション、そしてアンアーカイブしてるだけです。
ファイルが大きすぎる…ということであれば、.git
を諦めればVCS管理下のファイルだけを取得することもできます。
heroku run '/bin/bash -c "git archive HEAD -o /opt/app.zip && base64 /opt/app.zip"' --app $HEROKU_APP > app.base64 && \ base64 -d ./app.base64 > app.zip && \ unzip app.zip -d ./app
dynoを起動する必要があるので、無料期間終了の11月27日までにクローズするサービスについてはサルベージしておきたいですね。
そもそもGithubにプッシュしとけっつー話よな