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   
26  from daklib.dak_exceptions import DBUpdateError 
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 c = self.db.cursor() 55 56 for i in views: 57 c.execute("DROP VIEW {0}".format(i)) 58 59 for i in sequences: 60 c.execute("DROP SEQUENCE IF EXISTS {0}".format(i)) 61 62 c.execute("UPDATE config SET value = '119' WHERE name = 'db_revision'") 63 self.db.commit() 64 65 except psycopg2.ProgrammingError as msg: 66 self.db.rollback() 67 raise DBUpdateError( 68 "Unable to apply sick update 119, rollback issued. Error message: {0}".format( 69 msg 70 ) 71 )
72