Package dak :: Package dakdb :: Module update87
[hide private]
[frames] | no frames]

Source Code for Module dak.dakdb.update87

 1  """ 
 2  add external_files table for security 
 3   
 4  @contact: Debian FTP Master <ftpmaster@debian.org> 
 5  @copyright: 2012 Gergely Nagy <algernon@debian.org> 
 6  @license: GNU General Public License version 2 or later 
 7  """ 
 8   
 9  # This program is free software; you can redistribute it and/or modify 
10  # it under the terms of the GNU General Public License as published by 
11  # the Free Software Foundation; either version 2 of the License, or 
12  # (at your option) any later version. 
13   
14  # This program is distributed in the hope that it will be useful, 
15  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
16  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
17  # GNU General Public License for more details. 
18   
19  # You should have received a copy of the GNU General Public License 
20  # along with this program; if not, write to the Free Software 
21  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
22   
23  ################################################################################ 
24   
25  import psycopg2 
26  from daklib.dak_exceptions import DBUpdateError 
27  from daklib.config import Config 
28   
29  statements = [ 
30  """ 
31  CREATE TABLE external_files ( 
32      id integer, 
33      filename text NOT NULL, 
34      size bigint NOT NULL, 
35      md5sum text NOT NULL, 
36      last_used timestamp with time zone, 
37      sha1sum text, 
38      sha256sum text, 
39      created timestamp with time zone DEFAULT now() NOT NULL, 
40      modified timestamp with time zone DEFAULT now() NOT NULL 
41  ); 
42  """, 
43  """ 
44  INSERT INTO config(name, value) VALUES ('use_extfiles', 0); 
45  """ 
46  ] 
47   
48  ################################################################################ 
49   
50   
51 -def do_update(self):
52 print(__doc__) 53 try: 54 cnf = Config() 55 56 c = self.db.cursor() 57 58 for stmt in statements: 59 c.execute(stmt) 60 61 c.execute("UPDATE config SET value = '87' WHERE name = 'db_revision'") 62 self.db.commit() 63 64 except psycopg2.ProgrammingError as msg: 65 self.db.rollback() 66 raise DBUpdateError('Unable to apply sick update 87, rollback issued. Error message: {0}'.format(msg))
67