[damned-lies] Setup D-L to use South for model migrations



commit 9dd5cc81c913fd3d33ba1c3d9e9a22dc3135ff07
Author: Claude Paroz <claude 2xlibre net>
Date:   Fri Nov 13 20:28:39 2009 +0100

    Setup D-L to use South for model migrations
    
    This commit doesn't change any model, it just sets up things so
    as future changes can be managed with South.
    For existing databases, you should run the following commands after
    South has been installed and 'south' added to your settings.py
    INSTALLED_APPS:
    python manage.py migrate stats 0001 --fake
    python manage.py migrate vertimus 0001 --fake
    python manage.py migrate teams 0001 --fake
    python manage.py migrate people 0001 --fake
    python manage.py migrate languages 0001 --fake

 README                               |   17 +--
 languages/migrations/0001_initial.py |   94 ++++++++++
 people/migrations/0001_initial.py    |   79 ++++++++
 settings_sample.py                   |    5 +-
 stats/migrations/0001_initial.py     |  329 ++++++++++++++++++++++++++++++++++
 teams/migrations/0001_initial.py     |  113 ++++++++++++
 vertimus/migrations/0001_initial.py  |  198 ++++++++++++++++++++
 7 files changed, 820 insertions(+), 15 deletions(-)
---
diff --git a/README b/README
index c4e2bd5..f3102f9 100644
--- a/README
+++ b/README
@@ -13,7 +13,7 @@ The Data model is in the /docs directory.
 Requirements
 ============
 
-1 - Django 1.0.X
+1 - Django 1.1.X
 
 2 - Python 2.5 (for hashlib module).
 
@@ -23,16 +23,11 @@ Requirements
     * jQuery growfield (http://kuindji.com/jquery/growfield/growfield.xml)
       in /media/js/jquery.growfield2.js
 
-4 - [Optional] Django Evolution is an extension to Django that allows
-    you to track changes in your models over time, and to update the
-    database to reflect those changes.
+4 - South >= 0.6 - http://south.aeracode.org/
+    South is a Django extension that allows you to track changes in your models
+    over time, and to update the database to reflect those changes.
 
-    svn checkout http://django-evolution.googlecode.com/svn/trunk/
-    
-    Define USE_DJANGO_EVOLUTION to True in settings.py to use it.
-
-    Run './manage.py syncdb' before any model changes and './manage.py
-    evolve --hint --execute' after.
+    See http://south.aeracode.org/wiki/Download for installation instructions
 
 5 - [Optional] Django Debug Toolbar
     git clone git://github.com/dcramer/django-debug-toolbar.git
@@ -52,7 +47,7 @@ Installation
     SCRATCHDIR should point to an existing directory, writable by
     the web application user.
 
-2 - Run 'python manage.py syncdb'
+2 - Run 'python manage.py syncdb', then 'python manage.py migrate'
 
 3 - Configure Sites in admin interface to define the 'View on site'
     link.
diff --git a/languages/migrations/0001_initial.py b/languages/migrations/0001_initial.py
new file mode 100644
index 0000000..e600567
--- /dev/null
+++ b/languages/migrations/0001_initial.py
@@ -0,0 +1,94 @@
+
+from south.db import db
+from django.db import models
+from languages.models import *
+
+class Migration:
+    
+    def forwards(self, orm):
+        
+        # Adding model 'Language'
+        db.create_table('language', (
+            ('id', orm['languages.Language:id']),
+            ('name', orm['languages.Language:name']),
+            ('locale', orm['languages.Language:locale']),
+            ('team', orm['languages.Language:team']),
+            ('plurals', orm['languages.Language:plurals']),
+        ))
+        db.send_create_signal('languages', ['Language'])
+        
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'Language'
+        db.delete_table('language')
+        
+    
+    
+    models = {
+        'auth.group': {
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)"},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'languages.language': {
+            'Meta': {'db_table': "'language'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'locale': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '15'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}),
+            'plurals': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'team': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['teams.Team']", 'null': 'True', 'blank': 'True'})
+        },
+        'people.person': {
+            'Meta': {'db_table': "'person'"},
+            'activation_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}),
+            'bugzilla_account': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+            'image': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'irc_nick': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'svn_account': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'webpage_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+        },
+        'teams.team': {
+            'Meta': {'db_table': "'team'"},
+            'description': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mailing_list': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+            'mailing_list_subscribe': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['people.Person']"}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
+            'webpage_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+        }
+    }
+    
+    complete_apps = ['languages']
diff --git a/languages/migrations/__init__.py b/languages/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/people/migrations/0001_initial.py b/people/migrations/0001_initial.py
new file mode 100644
index 0000000..2c7fe26
--- /dev/null
+++ b/people/migrations/0001_initial.py
@@ -0,0 +1,79 @@
+# -*- coding: utf-8 -*-
+
+from south.db import db
+from django.db import models
+from people.models import *
+
+class Migration:
+    
+    def forwards(self, orm):
+        
+        # Adding model 'Person'
+        db.create_table('person', (
+            ('user_ptr', orm['people.Person:user_ptr']),
+            ('svn_account', orm['people.Person:svn_account']),
+            ('image', orm['people.Person:image']),
+            ('webpage_url', orm['people.Person:webpage_url']),
+            ('irc_nick', orm['people.Person:irc_nick']),
+            ('bugzilla_account', orm['people.Person:bugzilla_account']),
+            ('activation_key', orm['people.Person:activation_key']),
+        ))
+        db.send_create_signal('people', ['Person'])
+        
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'Person'
+        db.delete_table('person')
+        
+    
+    
+    models = {
+        'auth.group': {
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)"},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'people.person': {
+            'Meta': {'db_table': "'person'"},
+            'activation_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}),
+            'bugzilla_account': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+            'image': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'irc_nick': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'svn_account': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'webpage_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+        }
+    }
+    
+    complete_apps = ['people']
diff --git a/people/migrations/__init__.py b/people/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/settings_sample.py b/settings_sample.py
index 93be2d1..3d37156 100644
--- a/settings_sample.py
+++ b/settings_sample.py
@@ -6,7 +6,6 @@ gettext_noop = lambda s: s
 DEBUG = True
 TEMPLATE_DEBUG = DEBUG
 STATIC_SERVE = True
-USE_DJANGO_EVOLUTION = False
 USE_DEBUG_TOOLBAR = False
 
 PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))
@@ -125,6 +124,7 @@ INSTALLED_APPS = (
     'django.contrib.admin',
     'django.contrib.humanize',
 #    'django_openid',
+    'south',
     'common',
     'languages',
     'people',
@@ -136,9 +136,6 @@ INSTALLED_APPS = (
 
 INTERNAL_IPS=('127.0.0.1',)
 
-if USE_DJANGO_EVOLUTION:
-    INSTALLED_APPS += ('django_evolution',)
-
 if USE_DEBUG_TOOLBAR:
     MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
     INSTALLED_APPS += ('debug_toolbar',)
diff --git a/stats/migrations/0001_initial.py b/stats/migrations/0001_initial.py
new file mode 100644
index 0000000..d57c816
--- /dev/null
+++ b/stats/migrations/0001_initial.py
@@ -0,0 +1,329 @@
+# -*- coding: utf-8 -*-
+
+from south.db import db
+from django.db import models
+from stats.models import *
+
+class Migration:
+    
+    def forwards(self, orm):
+        
+        # Adding model 'Category'
+        db.create_table('category', (
+            ('id', orm['stats.Category:id']),
+            ('release', orm['stats.Category:release']),
+            ('branch', orm['stats.Category:branch']),
+            ('name', orm['stats.Category:name']),
+        ))
+        db.send_create_signal('stats', ['Category'])
+        
+        # Adding model 'Release'
+        db.create_table('release', (
+            ('id', orm['stats.Release:id']),
+            ('name', orm['stats.Release:name']),
+            ('description', orm['stats.Release:description']),
+            ('string_frozen', orm['stats.Release:string_frozen']),
+            ('status', orm['stats.Release:status']),
+        ))
+        db.send_create_signal('stats', ['Release'])
+        
+        # Adding model 'Statistics'
+        db.create_table('statistics', (
+            ('id', orm['stats.Statistics:id']),
+            ('branch', orm['stats.Statistics:branch']),
+            ('domain', orm['stats.Statistics:domain']),
+            ('language', orm['stats.Statistics:language']),
+            ('date', orm['stats.Statistics:date']),
+            ('translated', orm['stats.Statistics:translated']),
+            ('fuzzy', orm['stats.Statistics:fuzzy']),
+            ('untranslated', orm['stats.Statistics:untranslated']),
+            ('num_figures', orm['stats.Statistics:num_figures']),
+        ))
+        db.send_create_signal('stats', ['Statistics'])
+        
+        # Adding model 'InformationArchived'
+        db.create_table('information_archived', (
+            ('id', orm['stats.InformationArchived:id']),
+            ('statistics', orm['stats.InformationArchived:statistics']),
+            ('type', orm['stats.InformationArchived:type']),
+            ('description', orm['stats.InformationArchived:description']),
+        ))
+        db.send_create_signal('stats', ['InformationArchived'])
+        
+        # Adding model 'Branch'
+        db.create_table('branch', (
+            ('id', orm['stats.Branch:id']),
+            ('name', orm['stats.Branch:name']),
+            ('vcs_subpath', orm['stats.Branch:vcs_subpath']),
+            ('module', orm['stats.Branch:module']),
+        ))
+        db.send_create_signal('stats', ['Branch'])
+        
+        # Adding model 'Domain'
+        db.create_table('domain', (
+            ('id', orm['stats.Domain:id']),
+            ('module', orm['stats.Domain:module']),
+            ('name', orm['stats.Domain:name']),
+            ('description', orm['stats.Domain:description']),
+            ('dtype', orm['stats.Domain:dtype']),
+            ('directory', orm['stats.Domain:directory']),
+            ('pot_method', orm['stats.Domain:pot_method']),
+            ('linguas_location', orm['stats.Domain:linguas_location']),
+        ))
+        db.send_create_signal('stats', ['Domain'])
+        
+        # Adding model 'StatisticsArchived'
+        db.create_table('statistics_archived', (
+            ('id', orm['stats.StatisticsArchived:id']),
+            ('module', orm['stats.StatisticsArchived:module']),
+            ('type', orm['stats.StatisticsArchived:type']),
+            ('domain', orm['stats.StatisticsArchived:domain']),
+            ('branch', orm['stats.StatisticsArchived:branch']),
+            ('language', orm['stats.StatisticsArchived:language']),
+            ('date', orm['stats.StatisticsArchived:date']),
+            ('translated', orm['stats.StatisticsArchived:translated']),
+            ('fuzzy', orm['stats.StatisticsArchived:fuzzy']),
+            ('untranslated', orm['stats.StatisticsArchived:untranslated']),
+        ))
+        db.send_create_signal('stats', ['StatisticsArchived'])
+        
+        # Adding model 'Information'
+        db.create_table('information', (
+            ('id', orm['stats.Information:id']),
+            ('statistics', orm['stats.Information:statistics']),
+            ('type', orm['stats.Information:type']),
+            ('description', orm['stats.Information:description']),
+        ))
+        db.send_create_signal('stats', ['Information'])
+        
+        # Adding model 'Module'
+        db.create_table('module', (
+            ('id', orm['stats.Module:id']),
+            ('name', orm['stats.Module:name']),
+            ('homepage', orm['stats.Module:homepage']),
+            ('description', orm['stats.Module:description']),
+            ('comment', orm['stats.Module:comment']),
+            ('bugs_base', orm['stats.Module:bugs_base']),
+            ('bugs_product', orm['stats.Module:bugs_product']),
+            ('bugs_component', orm['stats.Module:bugs_component']),
+            ('vcs_type', orm['stats.Module:vcs_type']),
+            ('vcs_root', orm['stats.Module:vcs_root']),
+            ('vcs_web', orm['stats.Module:vcs_web']),
+        ))
+        db.send_create_signal('stats', ['Module'])
+        
+        # Adding ManyToManyField 'Module.maintainers'
+        db.create_table('module_maintainer', (
+            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+            ('module', models.ForeignKey(orm.Module, null=False)),
+            ('person', models.ForeignKey(orm['people.Person'], null=False))
+        ))
+        
+        # Creating unique_together for [name, module] on Branch.
+        db.create_unique('branch', ['name', 'module_id'])
+        
+        # Creating unique_together for [branch, domain, language] on Statistics.
+        db.create_unique('statistics', ['branch_id', 'domain_id', 'language_id'])
+        
+        # Creating unique_together for [release, branch] on Category.
+        db.create_unique('category', ['release_id', 'branch_id'])
+        
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting unique_together for [release, branch] on Category.
+        db.delete_unique('category', ['release_id', 'branch_id'])
+        
+        # Deleting unique_together for [branch, domain, language] on Statistics.
+        db.delete_unique('statistics', ['branch_id', 'domain_id', 'language_id'])
+        
+        # Deleting unique_together for [name, module] on Branch.
+        db.delete_unique('branch', ['name', 'module_id'])
+        
+        # Deleting model 'Category'
+        db.delete_table('category')
+        
+        # Deleting model 'Release'
+        db.delete_table('release')
+        
+        # Deleting model 'Statistics'
+        db.delete_table('statistics')
+        
+        # Deleting model 'InformationArchived'
+        db.delete_table('information_archived')
+        
+        # Deleting model 'Branch'
+        db.delete_table('branch')
+        
+        # Deleting model 'Domain'
+        db.delete_table('domain')
+        
+        # Deleting model 'StatisticsArchived'
+        db.delete_table('statistics_archived')
+        
+        # Deleting model 'Information'
+        db.delete_table('information')
+        
+        # Deleting model 'Module'
+        db.delete_table('module')
+        
+        # Dropping ManyToManyField 'Module.maintainers'
+        db.delete_table('module_maintainer')
+        
+    
+    
+    models = {
+        'auth.group': {
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)"},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'languages.language': {
+            'Meta': {'db_table': "'language'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'locale': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '15'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}),
+            'plurals': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'team': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['teams.Team']", 'null': 'True', 'blank': 'True'})
+        },
+        'people.person': {
+            'Meta': {'db_table': "'person'"},
+            'activation_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}),
+            'bugzilla_account': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+            'image': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'irc_nick': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'svn_account': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'webpage_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+        },
+        'stats.branch': {
+            'Meta': {'unique_together': "(('name', 'module'),)", 'db_table': "'branch'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'module': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Module']"}),
+            'name': ('BranchCharField', [], {'max_length': '50'}),
+            'vcs_subpath': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'})
+        },
+        'stats.category': {
+            'Meta': {'unique_together': "(('release', 'branch'),)", 'db_table': "'category'"},
+            'branch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Branch']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '30'}),
+            'release': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Release']"})
+        },
+        'stats.domain': {
+            'Meta': {'db_table': "'domain'"},
+            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'directory': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'dtype': ('django.db.models.fields.CharField', [], {'default': "'ui'", 'max_length': '5'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'linguas_location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+            'module': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Module']"}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'pot_method': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'})
+        },
+        'stats.information': {
+            'Meta': {'db_table': "'information'"},
+            'description': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'statistics': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Statistics']"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'stats.informationarchived': {
+            'Meta': {'db_table': "'information_archived'"},
+            'description': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'statistics': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.StatisticsArchived']"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'stats.module': {
+            'Meta': {'db_table': "'module'"},
+            'bugs_base': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+            'bugs_component': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+            'bugs_product': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['people.Person']", 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'vcs_root': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'vcs_type': ('django.db.models.fields.CharField', [], {'max_length': '5'}),
+            'vcs_web': ('django.db.models.fields.URLField', [], {'max_length': '200'})
+        },
+        'stats.release': {
+            'Meta': {'db_table': "'release'"},
+            'branches': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['stats.Branch']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.SlugField', [], {'max_length': '20', 'db_index': 'True'}),
+            'status': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'string_frozen': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'stats.statistics': {
+            'Meta': {'unique_together': "(('branch', 'domain', 'language'),)", 'db_table': "'statistics'"},
+            'branch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Branch']"}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Domain']"}),
+            'fuzzy': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'language': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['languages.Language']", 'null': 'True'}),
+            'num_figures': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'translated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'untranslated': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'stats.statisticsarchived': {
+            'Meta': {'db_table': "'statistics_archived'"},
+            'branch': ('django.db.models.fields.TextField', [], {}),
+            'date': ('django.db.models.fields.DateTimeField', [], {}),
+            'domain': ('django.db.models.fields.TextField', [], {}),
+            'fuzzy': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'language': ('django.db.models.fields.CharField', [], {'max_length': '15'}),
+            'module': ('django.db.models.fields.TextField', [], {}),
+            'translated': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '3'}),
+            'untranslated': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'teams.team': {
+            'Meta': {'db_table': "'team'"},
+            'description': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mailing_list': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+            'mailing_list_subscribe': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['people.Person']"}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
+            'webpage_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+        }
+    }
+    
+    complete_apps = ['stats']
diff --git a/stats/migrations/__init__.py b/stats/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/teams/migrations/0001_initial.py b/teams/migrations/0001_initial.py
new file mode 100644
index 0000000..be031ff
--- /dev/null
+++ b/teams/migrations/0001_initial.py
@@ -0,0 +1,113 @@
+# -*- coding: utf-8 -*-
+
+from south.db import db
+from django.db import models
+from teams.models import *
+
+class Migration:
+    
+    def forwards(self, orm):
+        
+        # Adding model 'Team'
+        db.create_table('team', (
+            ('id', orm['teams.Team:id']),
+            ('name', orm['teams.Team:name']),
+            ('description', orm['teams.Team:description']),
+            ('webpage_url', orm['teams.Team:webpage_url']),
+            ('mailing_list', orm['teams.Team:mailing_list']),
+            ('mailing_list_subscribe', orm['teams.Team:mailing_list_subscribe']),
+        ))
+        db.send_create_signal('teams', ['Team'])
+        
+        # Adding model 'Role'
+        db.create_table('role', (
+            ('id', orm['teams.Role:id']),
+            ('team', orm['teams.Role:team']),
+            ('person', orm['teams.Role:person']),
+            ('role', orm['teams.Role:role']),
+        ))
+        db.send_create_signal('teams', ['Role'])
+        
+        # Creating unique_together for [team, person] on Role.
+        db.create_unique('role', ['team_id', 'person_id'])
+        
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting unique_together for [team, person] on Role.
+        db.delete_unique('role', ['team_id', 'person_id'])
+        
+        # Deleting model 'Team'
+        db.delete_table('team')
+        
+        # Deleting model 'Role'
+        db.delete_table('role')
+        
+    
+    
+    models = {
+        'auth.group': {
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)"},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'people.person': {
+            'Meta': {'db_table': "'person'"},
+            'activation_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}),
+            'bugzilla_account': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+            'image': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'irc_nick': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'svn_account': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'webpage_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+        },
+        'teams.role': {
+            'Meta': {'unique_together': "(('team', 'person'),)", 'db_table': "'role'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['people.Person']"}),
+            'role': ('django.db.models.fields.CharField', [], {'default': "'translator'", 'max_length': '15'}),
+            'team': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Team']"})
+        },
+        'teams.team': {
+            'Meta': {'db_table': "'team'"},
+            'description': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mailing_list': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+            'mailing_list_subscribe': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['people.Person']"}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
+            'webpage_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+        }
+    }
+    
+    complete_apps = ['teams']
diff --git a/teams/migrations/__init__.py b/teams/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/vertimus/migrations/0001_initial.py b/vertimus/migrations/0001_initial.py
new file mode 100644
index 0000000..a27d9e8
--- /dev/null
+++ b/vertimus/migrations/0001_initial.py
@@ -0,0 +1,198 @@
+# -*- coding: utf-8 -*-
+
+from south.db import db
+from django.db import models
+from vertimus.models import *
+
+class Migration:
+    
+    def forwards(self, orm):
+        
+        # Adding model 'StateDb'
+        db.create_table('state', (
+            ('id', orm['vertimus.StateDb:id']),
+            ('branch', orm['vertimus.StateDb:branch']),
+            ('domain', orm['vertimus.StateDb:domain']),
+            ('language', orm['vertimus.StateDb:language']),
+            ('person', orm['vertimus.StateDb:person']),
+            ('name', orm['vertimus.StateDb:name']),
+            ('updated', orm['vertimus.StateDb:updated']),
+        ))
+        db.send_create_signal('vertimus', ['StateDb'])
+        
+        # Adding model 'ActionDbArchived'
+        db.create_table('action_archived', (
+            ('id', orm['vertimus.ActionDbArchived:id']),
+            ('state_db', orm['vertimus.ActionDbArchived:state_db']),
+            ('person', orm['vertimus.ActionDbArchived:person']),
+            ('name', orm['vertimus.ActionDbArchived:name']),
+            ('created', orm['vertimus.ActionDbArchived:created']),
+            ('comment', orm['vertimus.ActionDbArchived:comment']),
+            ('file', orm['vertimus.ActionDbArchived:file']),
+            ('sequence', orm['vertimus.ActionDbArchived:sequence']),
+        ))
+        db.send_create_signal('vertimus', ['ActionDbArchived'])
+        
+        # Adding model 'ActionDb'
+        db.create_table('action', (
+            ('id', orm['vertimus.ActionDb:id']),
+            ('state_db', orm['vertimus.ActionDb:state_db']),
+            ('person', orm['vertimus.ActionDb:person']),
+            ('name', orm['vertimus.ActionDb:name']),
+            ('created', orm['vertimus.ActionDb:created']),
+            ('comment', orm['vertimus.ActionDb:comment']),
+            ('file', orm['vertimus.ActionDb:file']),
+        ))
+        db.send_create_signal('vertimus', ['ActionDb'])
+        
+        # Creating unique_together for [branch, domain, language] on StateDb.
+        db.create_unique('state', ['branch_id', 'domain_id', 'language_id'])
+        
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting unique_together for [branch, domain, language] on StateDb.
+        db.delete_unique('state', ['branch_id', 'domain_id', 'language_id'])
+        
+        # Deleting model 'StateDb'
+        db.delete_table('state')
+        
+        # Deleting model 'ActionDbArchived'
+        db.delete_table('action_archived')
+        
+        # Deleting model 'ActionDb'
+        db.delete_table('action')
+        
+    
+    
+    models = {
+        'auth.group': {
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)"},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'languages.language': {
+            'Meta': {'db_table': "'language'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'locale': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '15'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}),
+            'plurals': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'team': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['teams.Team']", 'null': 'True', 'blank': 'True'})
+        },
+        'people.person': {
+            'Meta': {'db_table': "'person'"},
+            'activation_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}),
+            'bugzilla_account': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+            'image': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'irc_nick': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'svn_account': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'webpage_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+        },
+        'stats.branch': {
+            'Meta': {'unique_together': "(('name', 'module'),)", 'db_table': "'branch'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'module': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Module']"}),
+            'name': ('BranchCharField', [], {'max_length': '50'}),
+            'vcs_subpath': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'})
+        },
+        'stats.domain': {
+            'Meta': {'db_table': "'domain'"},
+            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'directory': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'dtype': ('django.db.models.fields.CharField', [], {'default': "'ui'", 'max_length': '5'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'linguas_location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+            'module': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Module']"}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'pot_method': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'})
+        },
+        'stats.module': {
+            'Meta': {'db_table': "'module'"},
+            'bugs_base': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+            'bugs_component': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+            'bugs_product': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'maintainers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['people.Person']", 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'vcs_root': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'vcs_type': ('django.db.models.fields.CharField', [], {'max_length': '5'}),
+            'vcs_web': ('django.db.models.fields.URLField', [], {'max_length': '200'})
+        },
+        'teams.team': {
+            'Meta': {'db_table': "'team'"},
+            'description': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mailing_list': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+            'mailing_list_subscribe': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['people.Person']"}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
+            'webpage_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+        },
+        'vertimus.actiondb': {
+            'Meta': {'db_table': "'action'"},
+            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.SlugField', [], {'max_length': '8', 'db_index': 'True'}),
+            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['people.Person']"}),
+            'state_db': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['vertimus.StateDb']"})
+        },
+        'vertimus.actiondbarchived': {
+            'Meta': {'db_table': "'action_archived'"},
+            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'created': ('django.db.models.fields.DateTimeField', [], {}),
+            'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.SlugField', [], {'max_length': '8', 'db_index': 'True'}),
+            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['people.Person']"}),
+            'sequence': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+            'state_db': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['vertimus.StateDb']"})
+        },
+        'vertimus.statedb': {
+            'Meta': {'unique_together': "(('branch', 'domain', 'language'),)", 'db_table': "'state'"},
+            'branch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Branch']"}),
+            'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['stats.Domain']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'language': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['languages.Language']"}),
+            'name': ('django.db.models.fields.SlugField', [], {'default': "'None'", 'max_length': '20', 'db_index': 'True'}),
+            'person': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['people.Person']", 'null': 'True'}),
+            'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'auto_now_add': 'True', 'blank': 'True'})
+        }
+    }
+    
+    complete_apps = ['vertimus']
diff --git a/vertimus/migrations/__init__.py b/vertimus/migrations/__init__.py
new file mode 100644
index 0000000..e69de29



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]