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

Source Code for Module dak.dakdb.update119

 1  """remove unused database objects 
 2   
 3  @contact: Debian FTP Master <ftpmaster@debian.org> 
 4  @copyright: 2018, Bastian Blank <waldi@debian.org> 
 5  @license: GNU General Public License version 2 or later 
 6  """ 
 7   
 8  # This program is free software; you can redistribute it and/or modify 
 9  # it under the terms of the GNU General Public License as published by 
10  # the Free Software Foundation; either version 2 of the License, or 
11  # (at your option) any later version. 
12   
13  # This program is distributed in the hope that it will be useful, 
14  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
15  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
16  # GNU General Public License for more details. 
17   
18  # You should have received a copy of the GNU General Public License 
19  # along with this program; if not, write to the Free Software 
20  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
21   
22  ################################################################################ 
23   
24  import psycopg2 
25  from daklib.dak_exceptions import DBUpdateError 
26  from daklib.config import Config 
27   
28  views = [ 
29      'obsolete_all_associations', 
30      'obsolete_any_associations', 
31      'obsolete_any_by_all_associations', 
32      'obsolete_src_associations', 
33      'almost_obsolete_all_associations', 
34      'almost_obsolete_src_associations', 
35      'newest_all_associations', 
36      'newest_any_associations', 
37      'any_associations_source', 
38      'binaries_suite_arch', 
39      'file_arch_suite', 
40      'src_associations_bin', 
41      'suite_arch_by_name', 
42  ] 
43   
44  sequences = [ 
45      'location_id_seq', 
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 i in views: 59 c.execute("DROP VIEW {0}".format(i)) 60 61 for i in sequences: 62 c.execute("DROP SEQUENCE IF EXISTS {0}".format(i)) 63 64 c.execute("UPDATE config SET value = '119' WHERE name = 'db_revision'") 65 self.db.commit() 66 67 except psycopg2.ProgrammingError as msg: 68 self.db.rollback() 69 raise DBUpdateError('Unable to apply sick update 119, rollback issued. Error message: {0}'.format(msg))
70