diff --git a/INSTALL b/INSTALL index ac502d492..af2961874 100644 --- a/INSTALL +++ b/INSTALL @@ -4,7 +4,7 @@ Installation Requirements ------------ -- Python version 2.5+ +- Python version 2.6+ - Django version 1.0+ (http://docs.djangoproject.com/en/dev/intro/install/#intro-install) How to install @@ -39,6 +39,22 @@ Run the initialisation script. It will insert needed data into the database : How to upgrade -------------- +0.7 -> 0.8 : SQL migration needed. + +south is needed to handle migrations. You will find instructions on +how to install south here: +http://south.aeracode.org/docs/installation.html. + +NB: Before doing this migration, I recommend that you make a copy of your +existing database. + +When this is done, add 'mailng.lib' and 'south' to your +INSTALLED_APPS. Then, run the following commands: + + # python manage.py syncdb + # python manage.py convert_to_south + # python manage.py migrate --all 0001 --fake + # python manage.py migrate --all 0002 0.6 -> 0.7 : no SQL modifications. 0.5 -> 0.6 : no SQL modifications. diff --git a/admin/migrations/0001_initial.py b/admin/migrations/0001_initial.py new file mode 100644 index 000000000..728f74380 --- /dev/null +++ b/admin/migrations/0001_initial.py @@ -0,0 +1,127 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Adding model 'Domain' + db.create_table('admin_domain', ( + ('quota', self.gf('django.db.models.fields.IntegerField')()), + ('enabled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)), + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), + )) + db.send_create_signal('admin', ['Domain']) + + # Adding model 'Mailbox' + db.create_table('admin_mailbox', ( + ('domain', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['admin.Domain'])), + ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('quota', self.gf('django.db.models.fields.IntegerField')()), + ('full_address', self.gf('django.db.models.fields.CharField')(max_length=150)), + ('gid', self.gf('django.db.models.fields.IntegerField')()), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), + ('address', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('path', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('password', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('uid', self.gf('django.db.models.fields.IntegerField')()), + )) + db.send_create_signal('admin', ['Mailbox']) + + # Adding model 'Alias' + db.create_table('admin_alias', ( + ('enabled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)), + ('mbox', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['admin.Mailbox'])), + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('full_address', self.gf('django.db.models.fields.CharField')(max_length=150)), + ('address', self.gf('django.db.models.fields.CharField')(max_length=100)), + )) + db.send_create_signal('admin', ['Alias']) + + + def backwards(self, orm): + + # Deleting model 'Domain' + db.delete_table('admin_domain') + + # Deleting model 'Mailbox' + db.delete_table('admin_mailbox') + + # Deleting model 'Alias' + db.delete_table('admin_alias') + + + models = { + 'admin.alias': { + 'Meta': {'object_name': 'Alias'}, + 'address': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'full_address': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mbox': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['admin.Mailbox']"}) + }, + 'admin.domain': { + 'Meta': {'object_name': 'Domain'}, + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'quota': ('django.db.models.fields.IntegerField', [], {}) + }, + 'admin.mailbox': { + 'Meta': {'object_name': 'Mailbox'}, + 'address': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['admin.Domain']"}), + 'full_address': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'gid': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'quota': ('django.db.models.fields.IntegerField', [], {}), + 'uid': ('django.db.models.fields.IntegerField', [], {}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'auth.group': { + 'Meta': {'object_name': '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'),)", 'object_name': 'Permission'}, + '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': { + 'Meta': {'object_name': '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'),)", 'object_name': 'ContentType', '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'}) + } + } + + complete_apps = ['admin'] diff --git a/admin/migrations/0002_auto__del_field_alias_mbox.py b/admin/migrations/0002_auto__del_field_alias_mbox.py new file mode 100644 index 000000000..586ba976e --- /dev/null +++ b/admin/migrations/0002_auto__del_field_alias_mbox.py @@ -0,0 +1,103 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Adding M2M table for field mboxes on 'Alias' + db.create_table('admin_alias_mboxes', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('alias', models.ForeignKey(orm['admin.alias'], null=False)), + ('mailbox', models.ForeignKey(orm['admin.mailbox'], null=False)) + )) + db.create_unique('admin_alias_mboxes', ['alias_id', 'mailbox_id']) + + for alias in orm.Alias.objects.all(): + alias.mboxes.append(alias.mbox_id) + alias.save() + + # Deleting field 'Alias.mbox' + db.delete_column('admin_alias', 'mbox_id') + + def backwards(self, orm): + + # Adding field 'Alias.mbox' + db.add_column('admin_alias', 'mbox', self.gf('django.db.models.fields.related.ForeignKey')(default=-1, to=orm['admin.Mailbox']), keep_default=False) + + # Removing M2M table for field mboxes on 'Alias' + db.delete_table('admin_alias_mboxes') + + + models = { + 'admin.alias': { + 'Meta': {'object_name': 'Alias'}, + 'address': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'full_address': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mboxes': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['admin.Mailbox']"}) + }, + 'admin.domain': { + 'Meta': {'object_name': 'Domain'}, + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'quota': ('django.db.models.fields.IntegerField', [], {}) + }, + 'admin.mailbox': { + 'Meta': {'object_name': 'Mailbox'}, + 'address': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['admin.Domain']"}), + 'full_address': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'gid': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'quota': ('django.db.models.fields.IntegerField', [], {}), + 'uid': ('django.db.models.fields.IntegerField', [], {}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'auth.group': { + 'Meta': {'object_name': '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'),)", 'object_name': 'Permission'}, + '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': { + 'Meta': {'object_name': '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'),)", 'object_name': 'ContentType', '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'}) + } + } + + complete_apps = ['admin'] diff --git a/admin/migrations/__init__.py b/admin/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/extensions/postfix_autoreply/migrations/0001_initial.py b/extensions/postfix_autoreply/migrations/0001_initial.py new file mode 100644 index 000000000..50736e342 --- /dev/null +++ b/extensions/postfix_autoreply/migrations/0001_initial.py @@ -0,0 +1,52 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Adding model 'Transport' + db.create_table('postfix_autoreply_transport', ( + ('domain', self.gf('django.db.models.fields.CharField')(max_length=300)), + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('method', self.gf('django.db.models.fields.CharField')(max_length=255)), + )) + db.send_create_signal('postfix_autoreply', ['Transport']) + + # Adding model 'Alias' + db.create_table('postfix_autoreply_alias', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('full_address', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('autoreply_address', self.gf('django.db.models.fields.CharField')(max_length=255)), + )) + db.send_create_signal('postfix_autoreply', ['Alias']) + + + def backwards(self, orm): + + # Deleting model 'Transport' + db.delete_table('postfix_autoreply_transport') + + # Deleting model 'Alias' + db.delete_table('postfix_autoreply_alias') + + + models = { + 'postfix_autoreply.alias': { + 'Meta': {'object_name': 'Alias'}, + 'autoreply_address': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'full_address': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'postfix_autoreply.transport': { + 'Meta': {'object_name': 'Transport'}, + 'domain': ('django.db.models.fields.CharField', [], {'max_length': '300'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'method': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + } + } + + complete_apps = ['postfix_autoreply'] diff --git a/extensions/postfix_autoreply/migrations/0002_auto__add_armessage__add_arhistoric.py b/extensions/postfix_autoreply/migrations/0002_auto__add_armessage__add_arhistoric.py new file mode 100644 index 000000000..b72632b00 --- /dev/null +++ b/extensions/postfix_autoreply/migrations/0002_auto__add_armessage__add_arhistoric.py @@ -0,0 +1,111 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Renaming model 'ARmessage' + db.rename_table('main_armessage', 'postfix_autoreply_armessage') + db.add_column('postfix_autoreply_armessage', 'untildate', + models.DateTimeField(null=True)) + + # Renaming model 'ARhistoric' + db.rename_table('main_arhistoric', 'postfix_autoreply_arhistoric') + + + def backwards(self, orm): + raise RuntimeError("Cannot reverse this migration.") + + + models = { + 'admin.domain': { + 'Meta': {'object_name': 'Domain'}, + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'quota': ('django.db.models.fields.IntegerField', [], {}) + }, + 'admin.mailbox': { + 'Meta': {'object_name': 'Mailbox'}, + 'address': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['admin.Domain']"}), + 'full_address': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'gid': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'quota': ('django.db.models.fields.IntegerField', [], {}), + 'uid': ('django.db.models.fields.IntegerField', [], {}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'auth.group': { + 'Meta': {'object_name': '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'),)", 'object_name': 'Permission'}, + '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': { + 'Meta': {'object_name': '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'),)", 'object_name': 'ContentType', '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'}) + }, + 'postfix_autoreply.alias': { + 'Meta': {'object_name': 'Alias'}, + 'autoreply_address': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'full_address': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'postfix_autoreply.arhistoric': { + 'Meta': {'object_name': 'ARhistoric'}, + 'armessage': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['postfix_autoreply.ARmessage']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_sent': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'sender': ('django.db.models.fields.TextField', [], {}) + }, + 'postfix_autoreply.armessage': { + 'Meta': {'object_name': 'ARmessage'}, + 'content': ('django.db.models.fields.TextField', [], {}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mbox': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['admin.Mailbox']"}), + 'subject': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'untildate': ('django.db.models.fields.DateTimeField', [], {}) + }, + 'postfix_autoreply.transport': { + 'Meta': {'object_name': 'Transport'}, + 'domain': ('django.db.models.fields.CharField', [], {'max_length': '300'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'method': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + } + } + + complete_apps = ['postfix_autoreply'] diff --git a/extensions/postfix_autoreply/migrations/__init__.py b/extensions/postfix_autoreply/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/lib/migrations/0001_initial.py b/lib/migrations/0001_initial.py new file mode 100644 index 000000000..232f6a4cc --- /dev/null +++ b/lib/migrations/0001_initial.py @@ -0,0 +1,35 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Adding model 'Parameter' + db.create_table('lib_parameter', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('value', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + )) + db.send_create_signal('lib', ['Parameter']) + + + def backwards(self, orm): + + # Deleting model 'Parameter' + db.delete_table('lib_parameter') + + + models = { + 'lib.parameter': { + 'Meta': {'object_name': 'Parameter'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'value': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + } + } + + complete_apps = ['lib'] diff --git a/lib/migrations/__init__.py b/lib/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/settings_sample.py b/settings_sample.py index 256158ac5..db4be5c68 100644 --- a/settings_sample.py +++ b/settings_sample.py @@ -84,7 +84,7 @@ INSTALLED_APPS = ( 'django.contrib.sites', 'mailng.lib', 'mailng.admin', - 'mailng.main', + 'mailng.userprefs', # MailNG extensions here. # 'mailng.extensions.postfix_autoreply'