changeset 781:7ae66bddf48d beta

fixed db manage, to work on other databases than sqlite
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 27 Nov 2010 16:12:26 +0100
parents 92fa9c3414d0
children 51127b2efb33
files rhodecode/lib/db_manage.py rhodecode/websetup.py
diffstat 2 files changed, 14 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/db_manage.py	Sat Nov 27 16:09:29 2010 +0100
+++ b/rhodecode/lib/db_manage.py	Sat Nov 27 16:12:26 2010 +0100
@@ -41,23 +41,25 @@
 log = logging.getLogger(__name__)
 
 class DbManage(object):
-    def __init__(self, log_sql, dbname, root, tests=False):
-        self.dbname = dbname
+    def __init__(self, log_sql, dbconf, root, tests=False):
+        self.dbname = dbconf.split('/')[-1]
         self.tests = tests
         self.root = root
-        dburi = 'sqlite:////%s' % jn(self.root, self.dbname)
-        engine = create_engine(dburi, echo=log_sql)
+        self.dburi = dbconf
+        engine = create_engine(self.dburi, echo=log_sql)
         init_model(engine)
         self.sa = meta.Session()
         self.db_exists = False
 
     def check_for_db(self, override):
         db_path = jn(self.root, self.dbname)
-        log.info('checking for existing db in %s', db_path)
-        if os.path.isfile(db_path):
-            self.db_exists = True
-            if not override:
-                raise Exception('database already exists')
+        if self.dburi.startswith('sqlite'):
+            log.info('checking for existing db in %s', db_path)
+            if os.path.isfile(db_path):
+
+                self.db_exists = True
+                if not override:
+                    raise Exception('database already exists')
 
     def create_tables(self, override=False):
         """
--- a/rhodecode/websetup.py	Sat Nov 27 16:09:29 2010 +0100
+++ b/rhodecode/websetup.py	Sat Nov 27 16:12:26 2010 +0100
@@ -8,16 +8,15 @@
 
 def setup_app(command, conf, vars):
     """Place any commands to setup rhodecode here"""
-    dbname = os.path.split(conf['sqlalchemy.db1.url'])[-1] 
-    dbmanage = DbManage(log_sql=True, dbname=dbname, root=conf['here'],
-                         tests=False)
+    dbconf = conf['sqlalchemy.db1.url']
+    dbmanage = DbManage(log_sql=True, dbconf=dbconf, root=conf['here'], tests=False)
     dbmanage.create_tables(override=True)
     dbmanage.config_prompt(None)
     dbmanage.create_default_user()
     dbmanage.admin_prompt()
     dbmanage.create_permissions()
     dbmanage.populate_default_permissions()
-           
+
     load_environment(conf.global_conf, conf.local_conf, initial=True)