summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2010-11-22 02:21:48 -0500
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2010-11-22 02:21:48 -0500
commit5bdaae7f7521537ad682013ab45bbaf48c3d09d7 (patch)
treecabc29dd13dd08e3cc1546f692742fb159e15f39
parentee9335d17ca228778123a1968ceccb312863c022 (diff)
downloadaskbot-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__.py2
-rw-r--r--askbot/migrations/0001_initial.py53
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'