「デプロイされていてユーザにも周知済みの、特定のバージョンを今後使わせたくない(周知しても使っちゃう人がいる)。ただし、そのバージョンのアプリケーション自体は後々使えるよう、残しておきたい」といった状況に遭遇しました。正しい道としては、該当のバージョンを削除し、後々必要になった際にリポジトリを対応時点まで戻して、その状態でデプロイする、ですが。でもそのバージョンに対応するリポジトリのリビジョンを探すのが面倒という状況だったりするときもありますよね…?
そこで思いついたのが バージョン名だけ変えてしまえば良いのでは? だったのですが、appcfg
コマンドにはそんな機能は存在しません。そこで、既存アプリケーションをダウンロード→別名でデプロイとしてしのぎました。が、途中で一手間挟む必要があったので、メモ書きとして残します。
appcfg.sh -A $APPID -V $VERSION_ORIGIN download_app $BACKUP_FOLDER
cp $APPENGINE_SDK/lib/user/appengine-api-1.0-sdk-1.9.42.jar $BACKUP_FOLDER/WEB-INF/lib/
appcfg.sh -A $APPID -V $VERSION_RENAMED update $BACKUP_FOLDER
download_app
コマンドでは、appengine-api-1.0-sdk-1.9.42.jar
が足りないようなので、それだけコピーしておけば、download_app
した構造をそのまま別バージョンとして簡単にデプロイできました。もちろん、sdkのjarのコピーを忘れるとアプリケーションは動作しません。