Задать вопрос
Ответы пользователя по тегу Git
  • Как перезагрузить python (DJANGO) на сервере и обновить данные на сервере после push??

    Можно воспользоваться готовым приложением www.fabfile.org/installing.html (https://github.com/fabric/fabric)
    Суть в том, что нужно написать скрипт с поочередным выполнением команд.
    Вот как реализовано у меня.
    На сервере стоит nginx + uwsgi. (установка тут https://habrahabr.ru/post/226419/)
    В файле uwsgi.ini добавлена строка (на хабре из ссылки выше этот файл называется mysite_uwsgi.ini)
    # reload uwsgi
    touch-reload=/opt/sitename/reload.txt

    В директории с проектом лежит файл fabfile.py с содержимым
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    from fabric.api import env, run, cd
    
    env.hosts = ['user@host', ]
    #Структура такая
    # /
    # +  opt/
    #    +  sitename/
    #       +  env/     тут virtualenv
    #       +  source/  тут лежит код
    project_path = '/opt/sitename/'
    source_path = '/opt/sitename/source/'
    branch = ''
    
    # Скрипт деплоя
    def deploy():
        # выполняются комманды для загрузки данных из репозитория
        with cd(source_path):
            run('mkdir -p tmp/')
            run('hg pull')
            run('hg update %s' % branch)
        # после загрузки репозитория
        # устанавливаются пакеты перечисленные в req.txt
        # производятся миграции
        # собирается статика
        # теребим файл reload.txt, чтобы оповестить uwsgi об обновлении
        with cd(project_path):
            run('env/bin/pip install -r %sreq.txt' % source_path)
            run('env/bin/python %smanage.py migrate' % source_path)
            run('env/bin/python %smanage.py collectstatic --noinput' % source_path)
            # run('env/bin/python %smanage.py compress' % source_path)
            run('touch reload.txt')

    запуск скрипта fab с параметром выполняемого таска из fabfile
    fab deploy
    Ответ написан
    Комментировать