ターミナルから実行できるデプロイ スクリプトを作成しようとしています。これにより、リポジトリからサイトが自動的にデプロイされます。私が特定した手順は次のとおりです。
- SSH経由でリモートサーバーに接続
- リモート リポジトリからサイトの最新バージョンを取得する
- SQL パッチを実行する
- クリーンアップして終了
SSH 接続とgit pull
コマンドをシェル ファイルに配置しましたが、(インタラクティブな?) シェル自体である MySQL に行き詰まっています。したがって、私のファイルには次のものがあります。
#!/bin/bash
# connect to remote server via SSH
ssh $SSH_USER@$SSH_HOST
# update code via Git
git pull origin $GIT_BRANCH
# connect to the database
mysql --user $MYSQL_USER --password=$MYSQL_PASSWORD --database=$MYSQL_DBNAME
# run any database patches
# disconnect from the database
# TODO
exit 0
ご覧のとおり、データベースに接続していますが、MySQL ステートメントを実行する方法がわかりません。
現時点では、SQL パッチを番号順に含むディレクトリがあります。したがって、 1.sql、2.sqlなどです。次に、私のデータベースには、最後に実行されたパッチを単純に記録するテーブルがあります。したがって、SELECT
ステートメントを作成し、実行する最後のパッチを読み取り、必要なパッチを実行する必要があります。
- シェル スクリプトで
SELECT
ステートメントをプロンプトに発行するにはどうすればよいですか?mysql
- では、通常の流れはどうなるでしょうか?接続を閉じてから再度開き、パッチ ファイルを入力として渡しますか? または、必要なすべてのパッチを 1 つの接続で実行しますか?
- 最後のパッチ ファイルをチェックして
do
、その間にあるパッチのループを実行すると思いますか?
ここで助けていただければ幸いです。