From 9b9f90d91c59108ec883bcae6840244b625763c3 Mon Sep 17 00:00:00 2001 From: Griatch Date: Mon, 21 Mar 2011 00:53:58 +0000 Subject: [PATCH] gtaylor convinced me to add migrations to the Evennia repo. This means that game/migrate.py is no more. The migrations will help you to adjust your database when Evennia releases a new database change, no need to drop the database or manually adjust tables. To make use of our schema migrations, you need to have Django-South installed. To convert to django-south operations, easiest is if you are willing to drop your old database (e.g. delete evennia.db if you use default sqlite3). Then do: "game/manage.py syncdb" followed by "game/manage.py migrate". That should do it. If you ever deletes your database, just rerun those two commands. If you want to convert an existing database, do game/manage.py convert_to_south comms game/manage.py convert_to_south config game/manage.py convert_to_south help game/manage.py convert_to_south objects game/manage.py convert_to_south players game/manage.py convert_to_south scripts In the future, you will then be able to do ./manage.py migrate when we tell you the schema has changed. --- game/migrate.py | 145 ---------------------- src/comms/migrations/0001_initial.py | 149 ++++++++++++++++++++++ src/comms/migrations/__init__.py | 0 src/config/migrations/0001_initial.py | 54 ++++++++ src/config/migrations/__init__.py | 0 src/help/migrations/0001_initial.py | 43 +++++++ src/help/migrations/__init__.py | 0 src/objects/migrations/0001_initial.py | 165 +++++++++++++++++++++++++ src/objects/migrations/__init__.py | 0 src/players/migrations/0001_initial.py | 119 ++++++++++++++++++ src/players/migrations/__init__.py | 0 src/scripts/migrations/0001_initial.py | 140 +++++++++++++++++++++ src/scripts/migrations/__init__.py | 0 13 files changed, 670 insertions(+), 145 deletions(-) delete mode 100755 game/migrate.py create mode 100644 src/comms/migrations/0001_initial.py create mode 100644 src/comms/migrations/__init__.py create mode 100644 src/config/migrations/0001_initial.py create mode 100644 src/config/migrations/__init__.py create mode 100644 src/help/migrations/0001_initial.py create mode 100644 src/help/migrations/__init__.py create mode 100644 src/objects/migrations/0001_initial.py create mode 100644 src/objects/migrations/__init__.py create mode 100644 src/players/migrations/0001_initial.py create mode 100644 src/players/migrations/__init__.py create mode 100644 src/scripts/migrations/0001_initial.py create mode 100644 src/scripts/migrations/__init__.py diff --git a/game/migrate.py b/game/migrate.py deleted file mode 100755 index 1c71a23c85..0000000000 --- a/game/migrate.py +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/env python - -""" - -Database migration helper, using South. - -Usage: - - - Install South using the method suitable for your platform - http://south.aeracode.org/docs/installation.html - - - You need to have a database setup, either an old one or - a fresh one. If the latter, run manage.py syncdb as normal, - entering superuser info etc. - - - Start this tool and use the 'initialize' option. South will - create a migration scheme for all Evennia components. - -That's all you need to do until Evennia's database scheme changes, -something which is usually announced with the update. To update -your current database automatically, follow these steps: - - - Run this tool - - - Select the Update option. - -That is all. :) - -For more advanced migrations, there might be further instructions. - -""" - -import os, sys -from subprocess import call -import south - -# Set the Python path up so we can get to settings.py from here. -sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -os.environ['DJANGO_SETTINGS_MODULE'] = 'game.settings' - -if not os.path.exists('settings.py'): - # make sure we have a settings.py file. - print " No settings.py file found. Launching manage.py ..." - - import game.manage - - print """ - Now configure Evennia by editing your new settings.py file. - If you haven't already, you should also create/configure the - database with 'python manage.py syncdb' before continuing.""" - sys.exit() - -# Get the settings -from django.conf import settings - -# Prepare all valid apps -APPLIST = [app.split('.')[-1] for app in settings.INSTALLED_APPS - if app.startswith("src.") or app.startswith("game.")] - -def run_south(mode): - """ - Simply call manage.py with the appropriate South commands. - """ - if mode == "init": - for appname in APPLIST: - print "Initializing %s ... (ignore missing directory tracebacks)" % appname - call([sys.executable, "manage.py", "convert_to_south", appname]) - print "\nInitialization complete. That's all you need to do for now." - elif mode == "update": - for appname in APPLIST: - print "Updating/migrating schema for %s ..." % appname - call([sys.executable, "manage.py", "schemamigration", appname, "--auto"]) - call([sys.executable, "manage.py", "migrate", appname]) - print "\nUpdate complete." - elif mode == "remove": - s = raw_input(" Warning, this cannot be undone. Continue? Y[N] > ") - if s.lower() == 'y': - from django.db.models import get_app - import shutil - for appname in APPLIST: - print "Removing migrations for %s ..." % appname - mod = get_app(appname) - path = os.path.join(os.path.dirname(mod.__file__), 'migrations') - try: - shutil.rmtree(path) - except OSError: - print "%s didn't exist/could not be deleted. Ignored.." % path - -def south_ui(): - """ - Simple menu for handling migrations. - """ - - string = """ - Evennia Database Migration Tool - - You usually don't need to use this tool unless a new version of Evennia - tells you that the database scheme changed in some way, AND you don't want - to reset your database. If you - - This tool will help you to migrate an existing database without having to - manually edit your tables and fields to match the new scheme. For that - to work you must have run this tool *before* applying the changes however. - - This is a simple wrapper on top of South, a Django database scheme - migration tool. - - If you want more control, you can call manage.py directly using the - instructions found at http://south.aeracode.org/docs. - - NOTE: Evennia is still in Alpha - there is no guarantee that database - changes will still not be too advanced to handle with this simple - tool, and it is too soon to talk of supplying custom migration - schemes to new versions. - - Options: - - i - Initialize an existing/new database with migration mappings (done once) - u - Update an initialized database to the changed scheme - r - Remove the migration scheme (back to normal syncdb operation) - q - Quit - """ - - while True: - print string - inp = str(raw_input(" Option > ")) - inp = inp.lower() - if inp in ["q", "i", "u", "r"]: - if inp == 'i': - run_south("init") - elif inp == 'u': - run_south("update") - elif inp == 'r': - run_south("remove") - sys.exit() - -if __name__ == "__main__": - - if not 'south' in settings.INSTALLED_APPS: - string = "\n The 'south' database migration tool does not seem to be installed." - string += "\n You can find it here: http://south.aeracide.org.\n" - print string - else: - south_ui() - diff --git a/src/comms/migrations/0001_initial.py b/src/comms/migrations/0001_initial.py new file mode 100644 index 0000000000..6b4bf998d9 --- /dev/null +++ b/src/comms/migrations/0001_initial.py @@ -0,0 +1,149 @@ +# 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 'Msg' + db.create_table('comms_msg', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_sender', self.gf('django.db.models.fields.related.ForeignKey')(related_name='sender_set', to=orm['players.PlayerDB'])), + ('db_receivers', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)), + ('db_channels', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)), + ('db_message', self.gf('django.db.models.fields.TextField')()), + ('db_date_sent', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('db_hide_from_sender', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('db_hide_from_receivers', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)), + ('db_hide_from_channels', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)), + ('db_lock_storage', self.gf('django.db.models.fields.TextField')(null=True)), + )) + db.send_create_signal('comms', ['Msg']) + + # Adding model 'Channel' + db.create_table('comms_channel', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)), + ('db_desc', self.gf('django.db.models.fields.CharField')(max_length=80, null=True, blank=True)), + ('db_aliases', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('db_keep_log', self.gf('django.db.models.fields.BooleanField')(default=True)), + ('db_lock_storage', self.gf('django.db.models.fields.TextField')(blank=True)), + )) + db.send_create_signal('comms', ['Channel']) + + # Adding model 'ChannelConnection' + db.create_table('comms_channelconnection', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_player', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['players.PlayerDB'])), + ('db_channel', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['comms.Channel'])), + )) + db.send_create_signal('comms', ['ChannelConnection']) + + + def backwards(self, orm): + + # Deleting model 'Msg' + db.delete_table('comms_msg') + + # Deleting model 'Channel' + db.delete_table('comms_channel') + + # Deleting model 'ChannelConnection' + db.delete_table('comms_channelconnection') + + + models = { + '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']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", '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']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + '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']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'comms.channel': { + 'Meta': {'object_name': 'Channel'}, + 'db_aliases': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_desc': ('django.db.models.fields.CharField', [], {'max_length': '80', 'null': 'True', 'blank': 'True'}), + 'db_keep_log': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'comms.channelconnection': { + 'Meta': {'object_name': 'ChannelConnection'}, + 'db_channel': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['comms.Channel']"}), + 'db_player': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['players.PlayerDB']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'comms.msg': { + 'Meta': {'object_name': 'Msg'}, + 'db_channels': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'db_date_sent': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_hide_from_channels': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'db_hide_from_receivers': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'db_hide_from_sender': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'null': 'True'}), + 'db_message': ('django.db.models.fields.TextField', [], {}), + 'db_receivers': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'db_sender': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sender_set'", 'to': "orm['players.PlayerDB']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", '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'}) + }, + 'objects.objectdb': { + 'Meta': {'object_name': 'ObjectDB'}, + 'db_cmdset_storage': ('django.db.models.fields.TextField', [], {'null': 'True'}), + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_home': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'homes_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locations_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'db_player': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['players.PlayerDB']", 'null': 'True', 'blank': 'True'}), + 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'players.playerdb': { + 'Meta': {'object_name': 'PlayerDB'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['objects.ObjectDB']", 'null': 'True'}), + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'}) + } + } + + complete_apps = ['comms'] diff --git a/src/comms/migrations/__init__.py b/src/comms/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/config/migrations/0001_initial.py b/src/config/migrations/0001_initial.py new file mode 100644 index 0000000000..af8c596251 --- /dev/null +++ b/src/config/migrations/0001_initial.py @@ -0,0 +1,54 @@ +# 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 'ConfigValue' + db.create_table('config_configvalue', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('db_value', self.gf('django.db.models.fields.TextField')()), + )) + db.send_create_signal('config', ['ConfigValue']) + + # Adding model 'ConnectScreen' + db.create_table('config_connectscreen', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), + ('db_text', self.gf('django.db.models.fields.TextField')()), + ('db_is_active', self.gf('django.db.models.fields.BooleanField')(default=True)), + )) + db.send_create_signal('config', ['ConnectScreen']) + + + def backwards(self, orm): + + # Deleting model 'ConfigValue' + db.delete_table('config_configvalue') + + # Deleting model 'ConnectScreen' + db.delete_table('config_connectscreen') + + + models = { + 'config.configvalue': { + 'Meta': {'object_name': 'ConfigValue'}, + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'db_value': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'config.connectscreen': { + 'Meta': {'object_name': 'ConnectScreen'}, + 'db_is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'db_text': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + } + } + + complete_apps = ['config'] diff --git a/src/config/migrations/__init__.py b/src/config/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/help/migrations/0001_initial.py b/src/help/migrations/0001_initial.py new file mode 100644 index 0000000000..f948fdd9fd --- /dev/null +++ b/src/help/migrations/0001_initial.py @@ -0,0 +1,43 @@ +# 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 'HelpEntry' + db.create_table('help_helpentry', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)), + ('db_help_category', self.gf('django.db.models.fields.CharField')(default='General', max_length=255)), + ('db_entrytext', self.gf('django.db.models.fields.TextField')(blank=True)), + ('db_permissions', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), + ('db_lock_storage', self.gf('django.db.models.fields.TextField')(blank=True)), + ('db_staff_only', self.gf('django.db.models.fields.BooleanField')(default=False)), + )) + db.send_create_signal('help', ['HelpEntry']) + + + def backwards(self, orm): + + # Deleting model 'HelpEntry' + db.delete_table('help_helpentry') + + + models = { + 'help.helpentry': { + 'Meta': {'object_name': 'HelpEntry'}, + 'db_entrytext': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_help_category': ('django.db.models.fields.CharField', [], {'default': "'General'", 'max_length': '255'}), + 'db_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'db_staff_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + } + } + + complete_apps = ['help'] diff --git a/src/help/migrations/__init__.py b/src/help/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/objects/migrations/0001_initial.py b/src/objects/migrations/0001_initial.py new file mode 100644 index 0000000000..045bfc7d15 --- /dev/null +++ b/src/objects/migrations/0001_initial.py @@ -0,0 +1,165 @@ +# 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 'ObjAttribute' + db.create_table('objects_objattribute', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('db_value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('db_mode', self.gf('django.db.models.fields.CharField')(max_length=20, null=True, blank=True)), + ('db_lock_storage', self.gf('django.db.models.fields.TextField')(blank=True)), + ('db_date_created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('db_obj', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['objects.ObjectDB'])), + )) + db.send_create_signal('objects', ['ObjAttribute']) + + # Adding model 'Alias' + db.create_table('objects_alias', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('db_obj', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['objects.ObjectDB'])), + )) + db.send_create_signal('objects', ['Alias']) + + # Adding model 'Nick' + db.create_table('objects_nick', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_nick', self.gf('django.db.models.fields.CharField')(max_length=255, db_index=True)), + ('db_real', self.gf('django.db.models.fields.TextField')()), + ('db_type', self.gf('django.db.models.fields.CharField')(default='inputline', max_length=16, null=True, blank=True)), + ('db_obj', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['objects.ObjectDB'])), + )) + db.send_create_signal('objects', ['Nick']) + + # Adding unique constraint on 'Nick', fields ['db_nick', 'db_type', 'db_obj'] + db.create_unique('objects_nick', ['db_nick', 'db_type', 'db_obj_id']) + + # Adding model 'ObjectDB' + db.create_table('objects_objectdb', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('db_typeclass_path', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)), + ('db_date_created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('db_permissions', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)), + ('db_lock_storage', self.gf('django.db.models.fields.TextField')(blank=True)), + ('db_player', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['players.PlayerDB'], null=True, blank=True)), + ('db_location', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='locations_set', null=True, to=orm['objects.ObjectDB'])), + ('db_home', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='homes_set', null=True, to=orm['objects.ObjectDB'])), + ('db_cmdset_storage', self.gf('django.db.models.fields.TextField')(null=True)), + )) + db.send_create_signal('objects', ['ObjectDB']) + + + def backwards(self, orm): + + # Removing unique constraint on 'Nick', fields ['db_nick', 'db_type', 'db_obj'] + db.delete_unique('objects_nick', ['db_nick', 'db_type', 'db_obj_id']) + + # Deleting model 'ObjAttribute' + db.delete_table('objects_objattribute') + + # Deleting model 'Alias' + db.delete_table('objects_alias') + + # Deleting model 'Nick' + db.delete_table('objects_nick') + + # Deleting model 'ObjectDB' + db.delete_table('objects_objectdb') + + + models = { + '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']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", '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']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + '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']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", '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'}) + }, + 'objects.alias': { + 'Meta': {'object_name': 'Alias'}, + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['objects.ObjectDB']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'objects.nick': { + 'Meta': {'unique_together': "(('db_nick', 'db_type', 'db_obj'),)", 'object_name': 'Nick'}, + 'db_nick': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), + 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['objects.ObjectDB']"}), + 'db_real': ('django.db.models.fields.TextField', [], {}), + 'db_type': ('django.db.models.fields.CharField', [], {'default': "'inputline'", 'max_length': '16', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'objects.objattribute': { + 'Meta': {'object_name': 'ObjAttribute'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_mode': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['objects.ObjectDB']"}), + 'db_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'objects.objectdb': { + 'Meta': {'object_name': 'ObjectDB'}, + 'db_cmdset_storage': ('django.db.models.fields.TextField', [], {'null': 'True'}), + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_home': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'homes_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locations_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'db_player': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['players.PlayerDB']", 'null': 'True', 'blank': 'True'}), + 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'players.playerdb': { + 'Meta': {'object_name': 'PlayerDB'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['objects.ObjectDB']", 'null': 'True'}), + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'}) + } + } + + complete_apps = ['objects'] diff --git a/src/objects/migrations/__init__.py b/src/objects/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/players/migrations/0001_initial.py b/src/players/migrations/0001_initial.py new file mode 100644 index 0000000000..04d5958960 --- /dev/null +++ b/src/players/migrations/0001_initial.py @@ -0,0 +1,119 @@ +# 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 'PlayerAttribute' + db.create_table('players_playerattribute', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('db_value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('db_mode', self.gf('django.db.models.fields.CharField')(max_length=20, null=True, blank=True)), + ('db_lock_storage', self.gf('django.db.models.fields.TextField')(blank=True)), + ('db_date_created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('db_obj', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['players.PlayerDB'])), + )) + db.send_create_signal('players', ['PlayerAttribute']) + + # Adding model 'PlayerDB' + db.create_table('players_playerdb', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('db_typeclass_path', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)), + ('db_date_created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('db_permissions', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)), + ('db_lock_storage', self.gf('django.db.models.fields.TextField')(blank=True)), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], unique=True)), + ('db_obj', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['objects.ObjectDB'], null=True)), + )) + db.send_create_signal('players', ['PlayerDB']) + + + def backwards(self, orm): + + # Deleting model 'PlayerAttribute' + db.delete_table('players_playerattribute') + + # Deleting model 'PlayerDB' + db.delete_table('players_playerdb') + + + models = { + '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']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", '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']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + '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']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", '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'}) + }, + 'objects.objectdb': { + 'Meta': {'object_name': 'ObjectDB'}, + 'db_cmdset_storage': ('django.db.models.fields.TextField', [], {'null': 'True'}), + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_home': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'homes_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locations_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'db_player': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['players.PlayerDB']", 'null': 'True', 'blank': 'True'}), + 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'players.playerattribute': { + 'Meta': {'object_name': 'PlayerAttribute'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_mode': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['players.PlayerDB']"}), + 'db_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'players.playerdb': { + 'Meta': {'object_name': 'PlayerDB'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['objects.ObjectDB']", 'null': 'True'}), + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'}) + } + } + + complete_apps = ['players'] diff --git a/src/players/migrations/__init__.py b/src/players/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/scripts/migrations/0001_initial.py b/src/scripts/migrations/0001_initial.py new file mode 100644 index 0000000000..3998ef1ae3 --- /dev/null +++ b/src/scripts/migrations/0001_initial.py @@ -0,0 +1,140 @@ +# 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 'ScriptAttribute' + db.create_table('scripts_scriptattribute', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('db_value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('db_mode', self.gf('django.db.models.fields.CharField')(max_length=20, null=True, blank=True)), + ('db_lock_storage', self.gf('django.db.models.fields.TextField')(blank=True)), + ('db_date_created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('db_obj', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['scripts.ScriptDB'])), + )) + db.send_create_signal('scripts', ['ScriptAttribute']) + + # Adding model 'ScriptDB' + db.create_table('scripts_scriptdb', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('db_key', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('db_typeclass_path', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)), + ('db_date_created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('db_permissions', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)), + ('db_lock_storage', self.gf('django.db.models.fields.TextField')(blank=True)), + ('db_desc', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), + ('db_obj', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['objects.ObjectDB'], null=True, blank=True)), + ('db_interval', self.gf('django.db.models.fields.IntegerField')(default=-1)), + ('db_start_delay', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('db_repeats', self.gf('django.db.models.fields.IntegerField')(default=0)), + ('db_persistent', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('db_is_active', self.gf('django.db.models.fields.BooleanField')(default=False)), + )) + db.send_create_signal('scripts', ['ScriptDB']) + + + def backwards(self, orm): + + # Deleting model 'ScriptAttribute' + db.delete_table('scripts_scriptattribute') + + # Deleting model 'ScriptDB' + db.delete_table('scripts_scriptdb') + + + models = { + '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']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", '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']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + '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']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", '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'}) + }, + 'objects.objectdb': { + 'Meta': {'object_name': 'ObjectDB'}, + 'db_cmdset_storage': ('django.db.models.fields.TextField', [], {'null': 'True'}), + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_home': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'homes_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locations_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'db_player': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['players.PlayerDB']", 'null': 'True', 'blank': 'True'}), + 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'players.playerdb': { + 'Meta': {'object_name': 'PlayerDB'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['objects.ObjectDB']", 'null': 'True'}), + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'}) + }, + 'scripts.scriptattribute': { + 'Meta': {'object_name': 'ScriptAttribute'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_mode': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['scripts.ScriptDB']"}), + 'db_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'scripts.scriptdb': { + 'Meta': {'object_name': 'ScriptDB'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_desc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'db_interval': ('django.db.models.fields.IntegerField', [], {'default': '-1'}), + 'db_is_active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['objects.ObjectDB']", 'null': 'True', 'blank': 'True'}), + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}), + 'db_persistent': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'db_repeats': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'db_start_delay': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + } + } + + complete_apps = ['scripts'] diff --git a/src/scripts/migrations/__init__.py b/src/scripts/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2