我正在創建一個可以從終端運行的部署腳本,它會自動從存儲庫部署我的站點。我已經確定的步驟是:在shell腳本中執行MySQL命令?
- 連接到遠程服務器通過SSH
- 從遠程倉庫獲取最新版本的網站
- 運行任何SQL補丁
- 清理和退出
我已經將SSH連接和git pull
命令放在我的shell文件中,但是我堅持的是MySQL,它是一個(交互式?)shell本身。所以在我的文件中,我有:
#!/bin/bash
# connect to remote server via SSH
ssh [email protected]$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
聲明,讀取最後一個要運行的補丁,然後運行任何必要的補丁。
- 如何在我的shell腳本中向
mysql
提示發出SELECT
聲明? - 那麼正常流量是多少?關閉連接並重新打開它,傳遞一個補丁文件作爲輸入?或者在一個連接中運行所有必需的修補程序?
- 我假設我會檢查最後一個補丁文件,併爲其間的任何補丁執行
do
循環?
這裏的幫助將不勝感激。
的'ssh'命令也會給你一個交互式shell。您還需要將命令輸入SSH,或者讓它在遠程計算機上執行特定文件。 –
這可能是一個很好的答案給你:[如何從shell腳本執行Mysql命令?](http://stackoverflow.com/questions/8055694/how-to-execute-mysql-command-from-a-shell-腳本)*從另一個stackoverflow問題 –