我在 DigitalOcean VPS 上有一些项目。我经常部署部分代码。几乎每次上传后我都必须执行多个命令。
例如,如果我更改 Django 模型并添加一些静态文件:
我必须通过 ssh 连接并且:
activate virtualenv
cd to /home/django/project/
python manage.py makemigrations
python manage.py migrate
python manage.py collectstatic
sudo systemctl daemon-reload
sudo systemctl restart gunicorn
sudo systemctl restart nginx
sudo supervisorctl
restart celery_worker
当然,我不需要每次都执行所有命令。
我希望能够让使用这些命令变得更加舒适。
是否存在某个应用程序,我可以在其中定义这些命令,然后从中选择并执行?
我想到最接近的方法是创建 shell 脚本,但也许还有更好的选择。
我用PyCharm用于部署。我查看了文档,没有找到这样的功能,但也许有。
答案1
我想到最接近的方法是创建 shell 脚本,但也许还有更好的选择。
是否存在某个应用程序,我可以在其中定义这些命令,然后从中选择并执行?
是的,我会创建 shell 脚本。但您也可以创建一个本地托管网站,在其中创建一个带有复选框的页面并让它们在服务器上执行。
关于shell脚本:
你可以创建非常复杂的 shell 脚本。请查看如何在 shell 脚本中创建选择菜单?对于使用“对话框”的“菜单”样式方法。“tasksel”是一个非常适合命令行的脚本,如下所示:
您可以创建类似的东西,并将每个命令设置为您选择的任务,然后执行。或者,如果命令相互依赖,则将它们串在一起(我想您需要始终启动所有 python manage.py,而不是作为单独的命令)。