import os DEFAULT_URI = os.getenv('DB', 'sqlite:memory') NOSQL = any([name in DEFAULT_URI for name in ("datastore", "mongodb", "imap")]) IS_IMAP = "imap" in DEFAULT_URI IS_GAE = "datastore" in DEFAULT_URI IS_MONGODB = "mongodb" in DEFAULT_URI IS_POSTGRESQL = 'postgres' in DEFAULT_URI IS_SQLITE = 'sqlite' in DEFAULT_URI IS_MSSQL = 'mssql' in DEFAULT_URI IS_MYSQL = 'mysql' in DEFAULT_URI IS_TERADATA = 'teradata' in DEFAULT_URI def drop(table, cascade=None): if NOSQL and not (IS_MONGODB): # GAE drop/cleanup is not implemented db = table._db db[table]._common_filter = None db(table).delete() del db[table._tablename] del db.tables[db.tables.index(table._tablename)] db._remove_references_to(table) else: if cascade: table.drop(cascade) else: table.drop() def _quote(db, value): return db._adapter.dialect.__class__.quote_template % value