1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 from conary.lib import cfg, cfgtypes
16
17 from base_drv import BaseDatabase as Database
18 from base_drv import BaseCursor as Cursor
19 from migration import SchemaMigration
20 from sqlerrors import InvalidBackend
21
22
23 __DRIVER = "sqlite"
24
26 global __DRIVER
27 if not driver:
28 driver = __DRIVER
29 if driver == "sqlite":
30 try:
31 from sqlite_drv import Database
32 except ImportError, e:
33 raise InvalidBackend(
34 "Could not locate driver for backend '%s'" % (driver,),
35 e.args + (driver,))
36 else:
37 return Database
38
39 if driver == "postgresql":
40 try:
41 from postgresql_drv import Database
42 except ImportError, e:
43 raise InvalidBackend(
44 "Could not locate driver for backend '%s'" % (driver,),
45 e.args + (driver,))
46 else:
47 return Database
48
49 if driver == "mysql":
50 try:
51 from mysql_drv import Database
52 except ImportError, e:
53 raise InvalidBackend(
54 "Could not locate driver for backend '%s'" % (driver,),
55 e.args + (driver,))
56 else:
57 return Database
58
59 if driver == "ingres":
60 try:
61 from ingres_drv import Database
62 except ImportError, e:
63 raise InvalidBackend(
64 "Could not locate driver for backend '%s'" % (driver,),
65 e.args + (driver,))
66 else:
67 return Database
68
69 raise InvalidBackend(
70 "Database backend '%s' is not supported" % (driver,),
71 driver)
72
73
74
75
81
82
85 s = str.split()
86 if len(s) != 2:
87 raise cfgtypes.ParseError("database driver and path expected")
88 return tuple(s)
91
92 __all__ = [ "connect", "InvalidBackend", "CfgDriver"]
93