[damned-lies] Setup D-L to use South for model migrations
- From: Claude Paroz <claudep src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [damned-lies] Setup D-L to use South for model migrations
- Date: Fri, 13 Nov 2009 19:35:49 +0000 (UTC)
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]