1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19 """Declare a table in a database schema."""
20
22 self.name = name
23 self.columns = []
24 self.indices = []
25 self.key = [key] if isinstance(key, basestring) else key
26
28 self.columns = [o for o in objs if isinstance(o, Column)]
29 self.indices = [o for o in objs if isinstance(o, Index)]
30 return self
31
33 """Remove columns specified in the list or tuple `column_names`."""
34 if not isinstance(column_names, (list, tuple)):
35 column_names = [column_names]
36 if any(c in column_names for c in self.key):
37 self.key = []
38 self.columns = [col for col in self.columns
39 if col.name not in column_names]
40 self.indices = [idx for idx in self.indices
41 if all(c not in column_names for c in idx.columns)]
42
43
45 """Declare a table column in a database schema."""
46
47 - def __init__(self, name, type='text', size=None, key_size=None,
48 auto_increment=False):
49 self.name = name
50 self.type = type
51 self.size = size
52 self.key_size = key_size
53 self.auto_increment = auto_increment
54
55
57 """Declare an index for a database schema."""
58
59 - def __init__(self, columns, unique=False):
60 self.columns = columns
61 self.unique = unique
62