]> git.openstreetmap.org Git - osqa.git/commitdiff
Jira OSQA-712, migrating to the new Databases setting format
authorjordan <jordan@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Sat, 25 Jun 2011 15:13:15 +0000 (15:13 +0000)
committerjordan <jordan@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Sat, 25 Jun 2011 15:13:15 +0000 (15:13 +0000)
git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@1079 0cfe37f9-358a-4d5e-be75-b63607b5c754

forum/base.py [new file with mode: 0644]
forum/management/commands/create_extended_user.py
forum_modules/mysqlfulltext/__init__.py
forum_modules/pgfulltext/__init__.py
forum_modules/updater/base.py
settings_local.py.dist

diff --git a/forum/base.py b/forum/base.py
new file mode 100644 (file)
index 0000000..a045216
--- /dev/null
@@ -0,0 +1,15 @@
+from django.conf import settings as django_settings
+
+def get_database_engine():
+    try:
+        database_type = django_settings.DATABASE_ENGINE
+
+        if len(database_type) == 0:
+            raise Exception('Empty old style database engine')
+    except:
+        try:
+            database_type = django_settings.DATABASES['default']['ENGINE']
+        except:
+            database_type = 'unknown'
+
+    return str(database_type)
\ No newline at end of file
index c8a5ff14d7f9286e62c3fa37cab74965a93f0398..768e18d007df670835c04edd0b15dea4891d9ab0 100644 (file)
@@ -1,3 +1,6 @@
+from forum.base import get_database_engine
+
+database_type = get_database_engine()
 
 PG_MIGRATION_QUERY = """
 SELECT id AS user_ptr_id, is_approved, email_isvalid, email_key, reputation, gravatar, gold, silver, bronze, questions_per_page, last_seen, real_name, website, location, date_of_birth, about, hide_ignored_questions, tag_filter_setting INTO forum_user FROM auth_user;
@@ -270,10 +273,10 @@ from django.conf import settings
 
 class Command(NoArgsCommand):
     def handle_noargs(self, **options):
-        if settings.DATABASE_ENGINE in ('postgresql_psycopg2', 'postgresql', ):
+        if database_type.__contains__('postgresql'):
             migration_query = PG_MIGRATION_QUERY
             fkeys_query = PG_FKEYS_QUERY
-        elif settings.DATABASE_ENGINE == 'mysql':
+        elif database_type.__contains__('mysql'):
             migration_query = MYSQL_MIGRATION_QUERY
             fkeys_query = MYSQL_FKEYS_QUERY
         else:
index 679d70387eed15b644fc1e58f3aae4c8ec607b7d..5591015f8e7a7b4f6662da9e633a92ad65608ae0 100644 (file)
@@ -1,12 +1,14 @@
+from forum.base import get_database_engine
+database_type = get_database_engine()
+
 NAME = 'Mysql Full Text Search'
 DESCRIPTION = "Enables Mysql full text search functionality."
 
 try:
     import MySQLdb
     import settings_local
-    CAN_USE = settings_local.DATABASE_ENGINE in ('mysql', 'pooled_mysql')
+    CAN_USE = 'mysql' in database_type
 except Exception, e:
     import traceback
     traceback.print_exc()
     CAN_USE = False
-  
\ No newline at end of file
index 20cd35555525a7807bb2c534c9027cc13b66c9fb..05dcb3df7ec7c94760e10808be331e9c29aa8dd3 100644 (file)
@@ -1,10 +1,11 @@
+from forum.base import get_database_engine
+database_type = get_database_engine()
+
 NAME = 'Postgresql Full Text Search'
 DESCRIPTION = "Enables PostgreSql full text search functionality."
 
 try:
     import psycopg2
-    from django.conf import settings
-    CAN_USE = settings.DATABASE_ENGINE in ('postgresql_psycopg2', 'postgresql', )
+    CAN_USE = 'postgresql' in database_type
 except:
     CAN_USE = False
-    
\ No newline at end of file
index 3ccf97d2025d7233a59c0e8ec11cbac991a8919d..c5bac16e01273d214add90e4e61f36f38a57be2b 100644 (file)
@@ -13,6 +13,7 @@ import logging
 
 
 from xml.dom.minidom import parse, parseString
+from forum.startup import get_database_engine
 from forum.models import Question, User
 from forum.settings import APP_URL, SVN_REVISION, APP_TITLE, APP_DESCRIPTION
 from django import VERSION as DJANGO_VERSION
@@ -88,6 +89,8 @@ def check_for_updates():
         admin_emails_xml += '<email value="%s" />' % email
     admin_emails_xml += '</emails>'
 
+    database_type = get_database_engine()
+
     statistics = """<check>
     <key value="%(site_key)s" />
     <app_url value="%(app_url)s" />
@@ -113,7 +116,7 @@ def check_for_updates():
         'active_users' : get_active_users(),
         'python_version' : ''.join(sys.version.splitlines()),
         'django_version' : str(DJANGO_VERSION),
-        'database' : django_settings.DATABASE_ENGINE,
+        'database' : database_type,
         'os' : str(os.uname()),
         'emails' : admin_emails_xml,
     }
index afcc53923b766a33803b227429ef4b29f2376249..96468bc71df26bb108eabb8f40540ec1325d50a1 100644 (file)
@@ -24,12 +24,16 @@ TEMPLATE_DEBUG = DEBUG
 INTERNAL_IPS = ('127.0.0.1',)
 
 
-DATABASE_NAME = ''             # Or path to database file if using sqlite3.
-DATABASE_USER = ''               # Not used with sqlite3.
-DATABASE_PASSWORD = ''               # Not used with sqlite3.
-DATABASE_ENGINE = ''  #mysql, etc
-DATABASE_HOST = ''
-DATABASE_PORT = ''
+DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.mysql',
+        'NAME': 'osqa',
+        'USER': 'root',
+        'PASSWORD': '',
+        'HOST': '',
+        'PORT': '',
+    }
+}
 
 CACHE_BACKEND = 'file://%s' % os.path.join(os.path.dirname(__file__),'cache').replace('\\','/')
 #CACHE_BACKEND = 'dummy://'