1 """add `authorized_by_fingerprint`
2
3 @contact: Debian FTP Master <ftpmaster@debian.org>
4 @copyright: 2025 Ansgar <ansgar@debian.org>
5 @license: GNU General Public License version 2 or later
6 """
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import psycopg2
25
26 from daklib.dak_exceptions import DBUpdateError
27
28 statements = [
29 """
30 ALTER TABLE binaries
31 ADD COLUMN authorized_by_fingerprint_id INTEGER
32 REFERENCES fingerprint(id)
33 """,
34 """
35 COMMENT ON COLUMN binaries.authorized_by_fingerprint_id
36 IS 'fingerprint of signature used to authorized the upload'
37 """,
38 """
39 ALTER TABLE source
40 ADD COLUMN authorized_by_fingerprint_id INTEGER
41 REFERENCES fingerprint(id)
42 """,
43 """
44 COMMENT ON COLUMN source.authorized_by_fingerprint_id
45 IS 'fingerprint of signature used to authorized the upload'
46 """,
47 """
48 ALTER TABLE changes ADD COLUMN authorized_by_fingerprint TEXT
49 """,
50 """
51 COMMENT ON COLUMN changes.authorized_by_fingerprint
52 IS 'fingerprint of signature used to authorized the upload'
53 """,
54 ]
55
56
57
58
60 print(__doc__)
61 try:
62 c = self.db.cursor()
63
64 for stmt in statements:
65 c.execute(stmt)
66
67 c.execute("UPDATE config SET value = '127' WHERE name = 'db_revision'")
68 self.db.commit()
69
70 except psycopg2.ProgrammingError as msg:
71 self.db.rollback()
72 raise DBUpdateError(
73 "Unable to apply sick update 127, rollback issued. Error message: {0}".format(
74 msg
75 )
76 )
77