LINUX.ORG.RU

История изменений

Исправление pawnhearts, (текущая версия) :

Вот тебе пример fabfile'а для джанго. Предполагается, что исходники лежат в каком-то удаленном mercurial, например, на bitbucket. Запускается с машины разработчика. На сервера дополнительно ничего ставить не надо.

from fabric.api import env, cd, prefix, local, run, sudo, shell_env, roles
from fabric.operations import get

env.roledefs = {
    'srv1': ['user@srv1.ru'],
}

@roles('srv1')
def deploy():
    PROJECT_DIR = '~/project1/prj'
    VIRTUALENV_SHELL = "source ~/.virtualenvs/project1/bin/activate"
    SETTINGS_FILE = 'config.settings.settings_production'

    with cd(PROJECT_DIR):
        run("hg pull -u")
        with prefix(VIRTUALENV_SHELL):
            run('pip install -r ../requirements.txt')
            with shell_env(DJANGO_SETTINGS_MODULE=SETTINGS_FILE):
                run('python manage.py syncdb')
                run('python manage.py migrate')
                run('python manage.py collectstatic --noinput')
    run('touch ~/project1.socket')

Исправление pawnhearts, :

Вот тебе пример fabfile'а для джанго. Предполагается, что исходники лежат в каком-то удаленном mercurial, например, на bitbucket. Запускается с машины разработчика. На сервера дополнительно ничего ставить не надо.

from fabric.api import env, cd, prefix, local, run, sudo, shell_env, roles
from fabric.operations import get

env.roledefs = {
    'srv1': ['user@srv1.ru'],
}

@roles('srv1')
def deploy():
    PROJECT_DIR = '~/project1'
    VIRTUALENV_SHELL = "source ~/.virtualenvs/project1/bin/activate"
    SETTINGS_FILE = 'config.settings.settings_production'

    with cd(PROJECT_DIR):
        run("hg pull -u")
        with prefix(VIRTUALENV_SHELL):
            run('pip install -r ../requirements.txt')
            with shell_env(DJANGO_SETTINGS_MODULE=SETTINGS_FILE):
                run('python manage.py syncdb')
                run('python manage.py migrate')
                run('python manage.py collectstatic --noinput')
    run('touch ~/project1.socket')

Исходная версия pawnhearts, :

Вот тебе пример fabfile'а для джанго. Предполагается, что исходники лежат в каком-то удаленном mercurial, например, на bitbucket.

from fabric.api import env, cd, prefix, local, run, sudo, shell_env, roles
from fabric.operations import get

env.roledefs = {
    'srv1': ['user@srv1.ru'],
}

@roles('srv1')
def deploy():
    PROJECT_DIR = '~/project1'
    VIRTUALENV_SHELL = "source ~/.virtualenvs/project1/bin/activate"
    SETTINGS_FILE = 'config.settings.settings_production'

    with cd(PROJECT_DIR):
        run("hg pull -u")
        with prefix(VIRTUALENV_SHELL):
            run('pip install -r ../requirements.txt')
            with shell_env(DJANGO_SETTINGS_MODULE=SETTINGS_FILE):
                run('python manage.py syncdb')
                run('python manage.py migrate')
                run('python manage.py collectstatic --noinput')
    run('touch ~/project1.socket')