Commits

Benoit C  committed 5155d17

automatic migration using django-south

  • Participants
  • Parent commits bb01180

Comments (0)

Files changed (2)

File src/fabfile.py

 def update_database():
     """Updates your database schema"""
     # first backup the database
-    backup_database()
+    #backup_database()
 
     conf = env.yaml.get("database")
     django = env.yaml.get("django")
     venv = env.yaml.get("virtualenv")
+    date = datetime.datetime.now()
 
     with cd(django.get("src_dir")):
+        for app in django.get('apps'):
+            venv["app"] = app
+            run("%(bin_dir)s/python manage.py startmigration %(app)s automigration --auto" % venv)
+            del venv["app"]
+
         run("%(bin_dir)s/python manage.py migrate --all" % venv)
+
         pass
 
     #first, create a local change in the database with south
     #apply the change
 
 @Permissions("normal_user", env)
-@ConfChecker("dataabse", env)
+@ConfChecker("django", env)
+def install_south():
+    """Install the required tables and initialize south"""
+    django = env.yaml.get("django")
+    venv = env.yaml.get("virtualenv")
+    with cd("%(src_dir)s" % django):
+        run("%(bin_dir)s/python manage.py syncdb" % venv)
+        for app in django.get('apps'):
+            venv["app"] = app
+            run("%(bin_dir)s/python manage.py convert_to_south %(app)s" % venv)
+            del venv["app"]
+
+@Permissions("normal_user", env)
+@ConfChecker("database", env)
 def install_database():
     """Install your database schema"""
     conf = env.yaml.get("database")
     django = env.yaml.get("django")
+    venv = env.yaml.get("virtualenv")
+    install_south()
+    with cd("%(src_dir)s" % django):
+        run("%(bin_dir)s/python manage.py migrate --all" % venv)
+
 
 @Permissions("sudo_user", env)
 @ConfChecker("services", env)

File src/fabulator/decorators.py

                 raise ImproperlyConfigured("did you configured the 'project' part of your settings ?")
             if not self.env.user:
                 raise ImproperlyConfigured("did you configured the 'project' part of your settings ?")
-            print func
             return func(*args, **kwargs)
 
         return _wrapper