add collecstatic and migrate to fabfile
authorymh <ymh.work@gmail.com>
Mon, 08 Jun 2015 11:52:52 +0200
changeset 141 0d0883c6ec09
parent 140 d0fb57986ddc
child 142 925337e6983d
add collecstatic and migrate to fabfile
server/sbin/sync/fabfile.py
--- a/server/sbin/sync/fabfile.py	Mon Jun 08 10:51:13 2015 +0200
+++ b/server/sbin/sync/fabfile.py	Mon Jun 08 11:52:52 2015 +0200
@@ -1,13 +1,21 @@
+from distutils.util import strtobool
+import os
+import shutil
+import settings
+import tempfile
+
 from fabric.api import env, local, put, run, lcd, task, prefix, sudo
 from fabric.contrib.files import exists, append, upload_template
 from fabric.colors import green
-import tempfile
-import shutil
-import os
-import settings
+
+def _prep_bool_arg(arg):
+    return bool(strtobool(str(arg)))
+
 
 current_path = os.path.dirname(os.path.realpath(__file__))
 
+#TODO: add collectatic
+
 def __init():
     if not env.get('temp_folder', None):
         env['temp_folder'] = tempfile.mkdtemp()
@@ -46,7 +54,7 @@
         run('rm -fr %s' % tmpd)
 
 
-def deploy():
+def deploy(installonly=False):
     # figure out the release name and version
     with lcd(os.path.join(get_version_path(),env.source_rel_path)):
         dist = local('python setup.py --fullname', capture=True).strip()
@@ -63,10 +71,18 @@
         # now that all is set up, delete the folder again
 
         run('rm -rf /tmp/%s.tar.gz' % dist)
-        sudo(env.srv_restart_cmd, shell=False)
+
+def restart_srv():
+    sudo(env.srv_restart_cmd, shell=False)
+
+def apply_deploy():
+    with prefix('source %s/bin/activate' % env.srv_venv_path):
+        run("django-admin migrate --noinput")
+        run("django-admin collectstatic --noinput --clear")
+
 
 @task(default=True)
-def deploy_version(version='tip'):
+def deploy_version(version='tip', installonly=False):
     env['version'] = version
     __init()
     export()
@@ -74,4 +90,7 @@
     if not exists(env.srv_venv_path):
         create_virtualenv()
     deploy()
+    if not _prep_bool_arg(installonly):
+        apply_deploy()
+    restart_srv()
     __clean()