Commits

Benoit C committed 5155d17

automatic migration using django-south

Comments (0)

Files changed (2)

 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)

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
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.