33 lines
954 B
Python
33 lines
954 B
Python
|
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
|