2
0
mirror of https://github.com/frappe/bench.git synced 2024-11-14 09:14:04 +00:00

migrate frappe calls to v5

This commit is contained in:
Pratik Vyas 2015-03-03 16:34:35 +05:30
parent 971c4305a5
commit 33a63f2343
3 changed files with 43 additions and 9 deletions

View File

@ -1,5 +1,5 @@
import os import os
from .utils import exec_cmd, get_frappe, check_git_for_shallow_clone, get_config, build_assets, restart_supervisor_processes, get_cmd_output from .utils import exec_cmd, get_frappe, check_git_for_shallow_clone, get_config, build_assets, restart_supervisor_processes, get_cmd_output, run_frappe_cmd
import logging import logging
import requests import requests
@ -60,8 +60,12 @@ def get_app(app, git_url, branch=None, bench='.', build_asset_files=True):
def new_app(app, bench='.'): def new_app(app, bench='.'):
logger.info('creating new app {}'.format(app)) logger.info('creating new app {}'.format(app))
exec_cmd("{frappe} --make_app {apps} {app}".format(frappe=get_frappe(bench=bench), apps = os.path.join(bench, 'apps')
apps=os.path.join(bench, 'apps'), app=app)) if FRAPPE_VERSION == '4':
exec_cmd("{frappe} --make_app {apps} {app}".format(frappe=get_frappe(bench=bench),
apps=apps, app=app))
else:
run_frappe_cmd('make-app', apps, app)
install_app(app, bench=bench) install_app(app, bench=bench)
def install_app(app, bench='.'): def install_app(app, bench='.'):
@ -152,3 +156,5 @@ def get_apps_json(path):
else: else:
with open(path) as f: with open(path) as f:
return json.load(f) return json.load(f)
FRAPPE_VERSION = get_current_frappe_version()

View File

@ -16,7 +16,7 @@ from .utils import (build_assets, patch_sites, exec_cmd, update_bench, get_env_c
fix_file_perms, fix_prod_setup_perms, set_ssl_certificate, set_ssl_certificate_key, get_cmd_output) fix_file_perms, fix_prod_setup_perms, set_ssl_certificate, set_ssl_certificate_key, get_cmd_output)
from .app import get_app as _get_app from .app import get_app as _get_app
from .app import new_app as _new_app from .app import new_app as _new_app
from .app import pull_all_apps, get_apps, MajorVersionUpgradeException from .app import pull_all_apps, get_apps, MajorVersionUpgradeException, get_current_frappe_version
from .config import generate_nginx_config, generate_supervisor_config, generate_redis_config from .config import generate_nginx_config, generate_supervisor_config, generate_redis_config
from .production_setup import setup_production as _setup_production from .production_setup import setup_production as _setup_production
from .migrate_to_v5 import migrate_to_v5 from .migrate_to_v5 import migrate_to_v5
@ -31,6 +31,8 @@ import subprocess
logger = logging.getLogger('bench') logger = logging.getLogger('bench')
global FRAPPE_VERSION
def cli(): def cli():
check_uid() check_uid()
change_dir() change_dir()
@ -132,6 +134,8 @@ def shell(bench='.'):
def bench(bench='.'): def bench(bench='.'):
"Bench manager for Frappe" "Bench manager for Frappe"
# TODO add bench path context # TODO add bench path context
global FRAPPE_VERSION
FRAPPE_VERSION = get_current_frappe_version()
setup_logging(bench=bench) setup_logging(bench=bench)
@click.command() @click.command()
@ -210,7 +214,7 @@ def update(pull=False, patch=False, build=False, bench=False, auto=False, restar
pull_all_apps(upgrade=upgrade) pull_all_apps(upgrade=upgrade)
except MajorVersionUpgradeException, e: except MajorVersionUpgradeException, e:
print "This update will cause a major version change in Frappe/ERPNext from v{0} to v{1}.".format(e.local_version, e.upstream_version) print "This update will cause a major version change in Frappe/ERPNext from v{0} to v{1}.".format(e.local_version, e.upstream_version)
print "This would take significant time to migrate and might break custom apps. Please use --upgrade to confirm." print "This would take significant time to migrate and might break custom apps. Please run `bench update --upgrade` to confirm."
sys.exit(1) sys.exit(1)
if requirements: if requirements:
update_requirements() update_requirements()

View File

@ -10,6 +10,7 @@ import pwd, grp
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
default_config = { default_config = {
'restart_supervisor_on_update': False, 'restart_supervisor_on_update': False,
'auto_update': False, 'auto_update': False,
@ -106,10 +107,16 @@ def new_site(site, mariadb_root_password=None, admin_password=None, bench='.'):
exec_cmd("{frappe} --use {site}".format(frappe=get_frappe(bench=bench), site=site), cwd=os.path.join(bench, 'sites')) exec_cmd("{frappe} --use {site}".format(frappe=get_frappe(bench=bench), site=site), cwd=os.path.join(bench, 'sites'))
def patch_sites(bench='.'): def patch_sites(bench='.'):
exec_cmd("{frappe} --latest all".format(frappe=get_frappe(bench=bench)), cwd=os.path.join(bench, 'sites')) if FRAPPE_VERSION == '4':
exec_cmd("{frappe} --latest all".format(frappe=get_frappe(bench=bench)), cwd=os.path.join(bench, 'sites'))
else:
run_frappe_cmd('--site', 'all', 'migrate')
def build_assets(bench='.'): def build_assets(bench='.'):
exec_cmd("{frappe} --build".format(frappe=get_frappe(bench=bench)), cwd=os.path.join(bench, 'sites')) if FRAPPE_VERSION == '4':
exec_cmd("{frappe} --build".format(frappe=get_frappe(bench=bench)), cwd=os.path.join(bench, 'sites'))
else:
run_frappe_cmd('build')
def get_sites(bench='.'): def get_sites(bench='.'):
sites_dir = os.path.join(bench, "sites") sites_dir = os.path.join(bench, "sites")
@ -133,8 +140,13 @@ def setup_auto_update(bench='.'):
def setup_backups(bench='.'): def setup_backups(bench='.'):
logger.info('setting up backups') logger.info('setting up backups')
add_to_crontab('0 */6 * * * cd {sites_dir} && {frappe} --backup all >> {logfile} 2>&1'.format(sites_dir=get_sites_dir(bench=bench), bench_dir = get_bench_dir(bench=bench)
frappe=get_frappe(bench=bench), if FRAPPE_VERSION == '4':
backup_command = "cd {sites_dir} && {frappe} --backup all".format(frappe=get_frappe(bench=bench),)
else:
backup_command = "cd {bench_dir} && {bench} --site all backup".format(bench_dir=bench_dir, bench=sys.argv[0])
add_to_crontab('0 */6 * * * {backup_command} --backup all >> {logfile} 2>&1'.format(backup_command=backup_command,
logfile=os.path.join(get_bench_dir(bench=bench), 'logs', 'backup.log'))) logfile=os.path.join(get_bench_dir(bench=bench), 'logs', 'backup.log')))
def add_to_crontab(line): def add_to_crontab(line):
@ -394,3 +406,15 @@ def get_redis_version():
return "2.6" return "2.6"
if re.search("Redis server v=2.8", version_string): if re.search("Redis server v=2.8", version_string):
return "2.8" return "2.8"
def get_current_frappe_version():
from .app import get_current_frappe_version as fv
return fv()
def run_frappe_cmd(*args):
bench = '.'
f = get_env_cmd('python', bench=bench)
os.chdir(os.path.join(bench, 'sites'))
subprocess.check_call((f, '-m', 'frappe.utils.bench_helper', 'frappe') + args)
FRAPPE_VERSION = get_current_frappe_version()