我正在寻找一个可以从终端运行的部署脚本,它会自动从存储库中部署我的站点。我确定的步骤是:
- 通过 SSH 连接到远程服务器
- 从远程存储库获取最新版本的站点
- 运行任何 SQL 补丁
- 清理并退出
我已经将 SSH 连接和git pull
命令放在我的 shell 文件中,但我坚持的是 MySQL,它本身就是一个(交互式?)shell。所以在我的文件中,我有:
#!/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
声明,阅读要运行的最后一个补丁,然后运行任何必要的补丁。
- 如何在我的 shell 脚本中
SELECT
向提示符发出语句?mysql
- 那么正常的流量是多少呢?关闭连接并重新打开它,将补丁文件作为输入传递?或者在一个连接中运行所有必需的补丁?
- 我假设我将检查最后一个补丁文件,并
do
为中间的任何补丁做一个循环?
在这里的帮助将不胜感激。