mirror of
https://github.com/frappe/bench.git
synced 2024-11-13 16:56:33 +00:00
v5 upgrade
This commit is contained in:
parent
5780ba6bd5
commit
c24a904ad6
10
bench/app.py
10
bench/app.py
@ -78,22 +78,19 @@ def install_app(app, bench='.'):
|
|||||||
find_links=find_links))
|
find_links=find_links))
|
||||||
add_to_appstxt(app, bench=bench)
|
add_to_appstxt(app, bench=bench)
|
||||||
|
|
||||||
def pull_all_apps(bench='.', upgrade=False):
|
def pull_all_apps(bench='.'):
|
||||||
apps_dir = os.path.join(bench, 'apps')
|
apps_dir = os.path.join(bench, 'apps')
|
||||||
apps = [app for app in os.listdir(apps_dir) if os.path.isdir(os.path.join(apps_dir, app))]
|
apps = [app for app in os.listdir(apps_dir) if os.path.isdir(os.path.join(apps_dir, app))]
|
||||||
rebase = '--rebase' if get_config().get('rebase_on_pull') else ''
|
rebase = '--rebase' if get_config().get('rebase_on_pull') else ''
|
||||||
frappe_dir = os.path.join(apps_dir, 'frappe')
|
frappe_dir = os.path.join(apps_dir, 'frappe')
|
||||||
|
|
||||||
if not upgrade:
|
|
||||||
check_version_upgrade()
|
|
||||||
|
|
||||||
for app in apps:
|
for app in apps:
|
||||||
app_dir = os.path.join(apps_dir, app)
|
app_dir = os.path.join(apps_dir, app)
|
||||||
if os.path.exists(os.path.join(app_dir, '.git')):
|
if os.path.exists(os.path.join(app_dir, '.git')):
|
||||||
logger.info('pulling {0}'.format(app))
|
logger.info('pulling {0}'.format(app))
|
||||||
exec_cmd("git pull {rebase} upstream {branch}".format(rebase=rebase, branch=get_current_branch(app_dir)), cwd=app_dir)
|
exec_cmd("git pull {rebase} upstream {branch}".format(rebase=rebase, branch=get_current_branch(app_dir)), cwd=app_dir)
|
||||||
|
|
||||||
def check_version_upgrade(bench='.'):
|
def is_version_upgrade(bench='.'):
|
||||||
apps_dir = os.path.join(bench, 'apps')
|
apps_dir = os.path.join(bench, 'apps')
|
||||||
frappe_dir = os.path.join(apps_dir, 'frappe')
|
frappe_dir = os.path.join(apps_dir, 'frappe')
|
||||||
|
|
||||||
@ -107,7 +104,8 @@ def check_version_upgrade(bench='.'):
|
|||||||
upstream_version = get_major_version(upstream_version)
|
upstream_version = get_major_version(upstream_version)
|
||||||
|
|
||||||
if upstream_version - local_version > 0:
|
if upstream_version - local_version > 0:
|
||||||
raise MajorVersionUpgradeException("Major Upgrade", upstream_version, local_version)
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def get_current_frappe_version(bench='.'):
|
def get_current_frappe_version(bench='.'):
|
||||||
apps_dir = os.path.join(bench, 'apps')
|
apps_dir = os.path.join(bench, 'apps')
|
||||||
|
27
bench/cli.py
27
bench/cli.py
@ -13,10 +13,11 @@ from .utils import set_default_site as _set_default_site
|
|||||||
from .utils import (build_assets, patch_sites, exec_cmd, update_bench, get_env_cmd, get_frappe, setup_logging,
|
from .utils import (build_assets, patch_sites, exec_cmd, update_bench, get_env_cmd, get_frappe, setup_logging,
|
||||||
get_config, update_config, restart_supervisor_processes, put_config, default_config, update_requirements,
|
get_config, update_config, restart_supervisor_processes, put_config, default_config, update_requirements,
|
||||||
backup_all_sites, backup_site, get_sites, prime_wheel_cache, is_root, set_mariadb_host, drop_privileges,
|
backup_all_sites, backup_site, get_sites, prime_wheel_cache, is_root, set_mariadb_host, drop_privileges,
|
||||||
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, post_upgrade,
|
||||||
|
pre_upgrade)
|
||||||
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, get_current_frappe_version
|
from .app import pull_all_apps, get_apps, get_current_frappe_version, is_version_upgrade
|
||||||
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
|
||||||
@ -213,13 +214,21 @@ def update(pull=False, patch=False, build=False, bench=False, auto=False, restar
|
|||||||
'restart-supervisor': restart_supervisor,
|
'restart-supervisor': restart_supervisor,
|
||||||
'upgrade': upgrade
|
'upgrade': upgrade
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
if is_version_upgrade() and not upgrade:
|
||||||
|
print "This update will cause a major version change in Frappe/ERPNext."
|
||||||
|
print "This would take significant time to migrate and might break custom apps. Please run `bench update --upgrade` to confirm."
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
upgrade = False
|
||||||
|
|
||||||
if pull:
|
if pull:
|
||||||
try:
|
pull_all_apps()
|
||||||
pull_all_apps(upgrade=upgrade)
|
|
||||||
except MajorVersionUpgradeException, e:
|
if upgrade:
|
||||||
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)
|
pre_upgrade()
|
||||||
print "This would take significant time to migrate and might break custom apps. Please run `bench update --upgrade` to confirm."
|
|
||||||
sys.exit(1)
|
|
||||||
if requirements:
|
if requirements:
|
||||||
update_requirements()
|
update_requirements()
|
||||||
if patch:
|
if patch:
|
||||||
@ -230,6 +239,8 @@ def update(pull=False, patch=False, build=False, bench=False, auto=False, restar
|
|||||||
build_assets()
|
build_assets()
|
||||||
if restart_supervisor or conf.get('restart_supervisor_on_update'):
|
if restart_supervisor or conf.get('restart_supervisor_on_update'):
|
||||||
restart_supervisor_processes()
|
restart_supervisor_processes()
|
||||||
|
if upgrade:
|
||||||
|
post_upgrade()
|
||||||
|
|
||||||
print "_"*80
|
print "_"*80
|
||||||
print "https://frappe.io/buy - Donate to help make better free and open source tools"
|
print "https://frappe.io/buy - Donate to help make better free and open source tools"
|
||||||
|
@ -417,4 +417,27 @@ def run_frappe_cmd(*args, **kwargs):
|
|||||||
sites_dir = os.path.join(bench, 'sites')
|
sites_dir = os.path.join(bench, 'sites')
|
||||||
subprocess.check_call((f, '-m', 'frappe.utils.bench_helper', 'frappe') + args, cwd=sites_dir)
|
subprocess.check_call((f, '-m', 'frappe.utils.bench_helper', 'frappe') + args, cwd=sites_dir)
|
||||||
|
|
||||||
|
|
||||||
|
def pre_upgrade(bench='.')
|
||||||
|
from .migrate_to_v5 import validate_v4, remove_shopping_cart
|
||||||
|
validate_v4(bench=bench)
|
||||||
|
for repo in repos:
|
||||||
|
checkout_v5(repo, bench=bench)
|
||||||
|
remove_shopping_cart(bench=bench)
|
||||||
|
|
||||||
|
def post_upgrade(bench='.'):
|
||||||
|
from .app import get_current_frappe_version
|
||||||
|
from .config import generate_nginx_config, generate_supervisor_config, generate_redis_config
|
||||||
|
if get_current_frappe_version() == 5:
|
||||||
|
print "Your bench was upgraded to version 5"
|
||||||
|
if conf.get('restart_supervisor_on_update'):
|
||||||
|
generate_redis_config(bench=bench)
|
||||||
|
generate_supervisor_config(bench=bench)
|
||||||
|
generate_nginx_config(bench=bench)
|
||||||
|
print "As you have setup your bench for production, you will have to reload configuration for nginx and supervisor"
|
||||||
|
print "To complete the migration, please run the following commands"
|
||||||
|
print
|
||||||
|
print "sudo service nginx restart"
|
||||||
|
print "sudo supervisorctl reload"
|
||||||
|
|
||||||
FRAPPE_VERSION = get_current_frappe_version()
|
FRAPPE_VERSION = get_current_frappe_version()
|
||||||
|
Loading…
Reference in New Issue
Block a user