def stage(pip=False, migrate=False, syncdb=False, branch=None, role='dev'): """ Updates the remote site files to your local branch head, collects static files, migrates, and installs pip requirements if necessary. """ update_function = get_update_function() branch = branch or get_git_branch() project_name = fb_env.role(role, 'project_name') project_path = fb_env.role(role, 'project_path') virtualenv_path = fb_env.role(role, 'virtualenv_path') restart_cmd = fb_env.role(role, 'restart_cmd') with cd(project_path): previous_head = update_function(branch) puts('Previous remote HEAD: {0}'.format(previous_head)) update_pip = pip or files_changed(previous_head, 'requirements.txt') migrate = migrate or files_changed(previous_head, '*/migrations/* {project_name}/settings.py requirements.txt'.format(project_name=project_name)) syncdb = syncdb or files_changed(previous_head, '*/settings.py') with virtualenv(virtualenv_path): if update_pip: run('pip install -r ./requirements.txt') if syncdb: run('python manage.py syncdb') if migrate: run('python manage.py backupdb') run('python manage.py migrate') run('python manage.py collectstatic --noinput') run(restart_cmd)
def stage(branch=None, role='dev'): """ Updates the remote site files to your local branch head. """ update_function = get_update_function() branch = branch or get_git_branch() project_path = fb_env.role(role, 'project_path') with cd(project_path): previous_head = update_function(branch) puts('Previous remote HEAD: {0}'.format(previous_head))