Initial support to upgrade a Mayan EDMS installation automatically
This commit is contained in:
@@ -7,6 +7,7 @@ import databases as database
|
||||
import platforms as platform
|
||||
import webservers as webserver
|
||||
import django
|
||||
import mayan_edms
|
||||
from conf import print_supported_configs
|
||||
from server_config import servers
|
||||
|
||||
@@ -46,7 +47,15 @@ def install():
|
||||
webserver.install_site()
|
||||
webserver.restart()
|
||||
platform.post_install()
|
||||
|
||||
|
||||
|
||||
@task
|
||||
def upgrade():
|
||||
"""
|
||||
Perform a Mayan EDMS installation upgrade
|
||||
"""
|
||||
mayan_edms.upgrade()
|
||||
|
||||
|
||||
@task
|
||||
def uninstall():
|
||||
|
||||
50
fabfile/mayan_edms/__init__.py
Normal file
50
fabfile/mayan_edms/__init__.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from distutils.version import LooseVersion
|
||||
import importlib
|
||||
|
||||
from fabric.api import env, task, cd, sudo, settings
|
||||
from fabric.colors import green, red
|
||||
|
||||
from ..conf import setup_environment
|
||||
|
||||
|
||||
@task
|
||||
def upgrade():
|
||||
"""
|
||||
Upgrade a Mayan EDMS installation, but doing incremental upgrades
|
||||
"""
|
||||
setup_environment()
|
||||
print(green('Upgrading Mayan EDMS database', bold=True))
|
||||
|
||||
with settings(warn_only=True):
|
||||
with cd(env.virtualenv_path):
|
||||
version = sudo('source bin/activate; python -c "import os;os.environ[\'DJANGO_SETTINGS_MODULE\']=\'mayan.settings\';from django.core.management import setup_environ;import settings;setup_environ(settings);import main;print main.__version__"')
|
||||
|
||||
if version.failed:
|
||||
print(red('Unable to determined the current version.', bold=True))
|
||||
exit()
|
||||
|
||||
current_verision = 'v%s' % version
|
||||
print(green('Current version: %s' % version, bold=True))
|
||||
|
||||
with settings(warn_only=True):
|
||||
with cd(env.repository_name):
|
||||
tags = sudo('git tag').split('\r\n')
|
||||
|
||||
if tags.failed:
|
||||
print(red('Upgrading is only support on git based installations.', bold=True))
|
||||
exit()
|
||||
|
||||
tags.sort(key=LooseVersion)
|
||||
|
||||
latest_version = tags[-1]
|
||||
print(green('Latest version: %s' % latest_version, bold=True))
|
||||
|
||||
upgrade_steps = tags.index(latest_version) - tags.index(current_verision)
|
||||
if not upgrade_steps:
|
||||
print(green('Already in the latest version, no need to upgrade.', bold=True))
|
||||
exit()
|
||||
else:
|
||||
print(green('Upgrade steps needed until latest version: %d' % (), bold=True))
|
||||
version_module_name = current_verision.replace('.', '_')
|
||||
module = importlib.import_module('fabfile.mayan_edms.upgrades.%s' % version_module_name)
|
||||
module.upgrade()
|
||||
0
fabfile/mayan_edms/upgrades/__init__.py
Normal file
0
fabfile/mayan_edms/upgrades/__init__.py
Normal file
14
fabfile/mayan_edms/upgrades/v0_12_2.py
Normal file
14
fabfile/mayan_edms/upgrades/v0_12_2.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from fabric.api import env, task, cd, sudo, settings
|
||||
from fabric.colors import green, red
|
||||
|
||||
from ..conf import setup_environment
|
||||
|
||||
|
||||
@task
|
||||
def upgrade():
|
||||
"""
|
||||
Upgrade a Mayan EDMS installation from version v0.12.2 to v0.12.3
|
||||
"""
|
||||
setup_environment()
|
||||
print(green('Upgrading Mayan EDMS database from version 0.12.2 to 0.12.3', bold=True))
|
||||
#TODO: upgrade steps
|
||||
Reference in New Issue
Block a user