Esempio n. 1
0
 def isInitialized(self):
     try:
         v = self.execute("select id from node where type='root'")
         v[0]
         return True
     except sqlite.OperationalError:
         self.createTables()
         initDatabaseValues(self)
     except IndexError:
         initDatabaseValues(self)
     return False
Esempio n. 2
0
 def isInitialized(self):
     try:
         v = self.execute("select id from node where type='root'")
         v[0]
         return True
     except sqlite.OperationalError:
         self.createTables()
         initDatabaseValues(self)
     except IndexError:
         initDatabaseValues(self)
     return False
Esempio n. 3
0
    def __init__(self):
        self.dbhost = config.get("database.dbhost", "localhost")
        self.dbport = int(config.get("database.dbport", "3306"))
        self.database = config.get("database.db", "mediatum")
        self.user = config.get("database.user", "mediatumadmin")
        self.passwd = config.get("database.passwd", "")

        self.db = MySQLdb.connect(host=self.dbhost, port=self.dbport, user=self.user, passwd=self.passwd, db=self.database)
        self.dblock = thread.allocate_lock()
        self.nodes = {}

        function = str(traceback.extract_stack()[-2][0]) + ":" + str(traceback.extract_stack()[-2][2])
        log.info("Connecting to [" + self.user + "@" + self.database + "] " + function)

        # test base table
        try:
            r = self.runQuery("select id from node where type='root'")
            r[0]
        except MySQLdb.ProgrammingError:
            self.createTables()
            initDatabaseValues(self)
        except IndexError:
            initDatabaseValues(self)

        # test for new views
        try:
            r = self.runQuery("select nid from containermapping limit 1")
            r[0]
        except MySQLdb.ProgrammingError:
            self.runQueryNoError(
                "CREATE OR REPLACE VIEW `containermapping` AS select `nodemapping`.`nid` AS `nid`,`nodemapping`.`cid` AS `cid`,`node`.`type` AS `type` from (`nodemapping` join `node` on((`nodemapping`.`cid` = `node`.`id`))) where (locate('/',`node`.`type`) = 0)")
            self.runQueryNoError(
                "CREATE OR REPLACE VIEW `contentmapping` AS select `nodemapping`.`nid` AS `nid`,`nodemapping`.`cid` AS `cid`,`node`.`type` AS `type` from (`nodemapping` join `node` on((`nodemapping`.`cid` = `node`.`id`))) where (locate('/',`node`.`type`) > 0)")

        try:
            r = self.runQuery("select * from node where dirty=1 limit 1")
        except MySQLdb.OperationalError:
            self.runQuery("alter table node add column dirty bool")