diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-11-22 02:21:48 -0500 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-11-22 02:21:48 -0500 |
commit | 5bdaae7f7521537ad682013ab45bbaf48c3d09d7 (patch) | |
tree | cabc29dd13dd08e3cc1546f692742fb159e15f39 | |
parent | ee9335d17ca228778123a1968ceccb312863c022 (diff) | |
download | askbot-5bdaae7f7521537ad682013ab45bbaf48c3d09d7.tar.gz askbot-5bdaae7f7521537ad682013ab45bbaf48c3d09d7.tar.bz2 askbot-5bdaae7f7521537ad682013ab45bbaf48c3d09d7.zip |
made askbot install to sites that have existing auth_user table
-rw-r--r-- | askbot/__init__.py | 2 | ||||
-rw-r--r-- | askbot/migrations/0001_initial.py | 53 |
2 files changed, 52 insertions, 3 deletions
diff --git a/askbot/__init__.py b/askbot/__init__.py index e3b1f1a2..8c5355f4 100644 --- a/askbot/__init__.py +++ b/askbot/__init__.py @@ -19,4 +19,4 @@ def get_version(): """returns version of the askbot app this version is meaningful for pypi only """ - return '0.6.35' + return '0.6.36' diff --git a/askbot/migrations/0001_initial.py b/askbot/migrations/0001_initial.py index 83c08975..97febea3 100644 --- a/askbot/migrations/0001_initial.py +++ b/askbot/migrations/0001_initial.py @@ -7,10 +7,43 @@ from django.db import models app_dir_name = os.path.basename(os.path.dirname(os.path.dirname(__file__))) +def safe_add_column(table, column, column_data, keep_default = False): + """when user calls syncdb with askbot the first time + the auth_user table will be created together with the patched columns + so, we need to add these columns here in separate transactions + and roll back if they fail, if we want we could also record - which columns clash + """ + try: + db.start_transaction() + db.add_column(table, column, column_data, keep_default = keep_default) + db.commit_transaction() + return True + except: + db.rollback_transaction() + return False + class Migration(SchemaMigration): def forwards(self, orm): - + #1) patch the existing auth_user table + safe_add_column('auth_user', 'website', self.gf('django.db.models.fields.URLField')(max_length=200, blank=True), keep_default = False) + safe_add_column('auth_user', 'about', self.gf('django.db.models.fields.TextField')(blank=True), keep_default = False) + safe_add_column('auth_user', 'hide_ignored_questions', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default = False) + safe_add_column('auth_user', 'gold', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default = False) + safe_add_column('auth_user', 'email_isvalid', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default = False) + safe_add_column('auth_user', 'real_name', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True), keep_default = False) + safe_add_column('auth_user', 'location', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True), keep_default = False) + safe_add_column('auth_user', 'email_key', self.gf('django.db.models.fields.CharField')(max_length=32, null=True), keep_default = False) + safe_add_column('auth_user', 'date_of_birth', self.gf('django.db.models.fields.DateField')(null=True, blank=True), keep_default = False) + safe_add_column('auth_user', 'reputation', self.gf('django.db.models.fields.PositiveIntegerField')(default=1), keep_default = False) + safe_add_column('auth_user', 'gravatar', self.gf('django.db.models.fields.CharField')(max_length=32), keep_default = False) + safe_add_column('auth_user', 'bronze', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default = False) + safe_add_column('auth_user', 'tag_filter_setting', self.gf('django.db.models.fields.CharField')(default='ignored', max_length=16), keep_default = False) + safe_add_column('auth_user', 'last_seen', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now), keep_default = False) + safe_add_column('auth_user', 'silver', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default = False), + safe_add_column('auth_user', 'questions_per_page', self.gf('django.db.models.fields.SmallIntegerField')(default=10), keep_default = False), + safe_add_column('auth_user', 'response_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False) + # Adding model 'Vote' if app_dir_name == 'forum': db.create_table(u'vote', ( @@ -707,8 +740,24 @@ class Migration(SchemaMigration): )) db.send_create_signal('askbot', ['BookAuthorRss']) - def backwards(self, orm): + db.delete_column('auth_user', 'website') + db.delete_column('auth_user', 'about') + db.delete_column('auth_user', 'hide_ignored_questions') + db.delete_column('auth_user', 'gold') + db.delete_column('auth_user', 'email_isvalid') + db.delete_column('auth_user', 'real_name') + db.delete_column('auth_user', 'location') + db.delete_column('auth_user', 'email_key') + db.delete_column('auth_user', 'date_of_birth') + db.delete_column('auth_user', 'reputation') + db.delete_column('auth_user', 'gravatar') + db.delete_column('auth_user', 'bronze') + db.delete_column('auth_user', 'tag_filter_setting') + db.delete_column('auth_user', 'last_seen') + db.delete_column('auth_user', 'silver') + db.delete_column('auth_user', 'questions_per_page') + db.delete_column('auth_user', 'response_count') if app_dir_name == 'forum': # Deleting model 'Vote' |