From 44af2b430f4d676b8498b726e50c969fa37955db Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Mon, 21 Jan 2019 20:28:33 +0100 Subject: aurblup: make provider updates more robust Reverse the order of deletion and addition so that deletion comes first. This prevents corner cases such as failing unique key constraints when a provided package changes from lower case to upper case and the old name is not yet gone. Helped-by: Eli Schwartz Signed-off-by: Lukas Fleischer --- aurweb/scripts/aurblup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/aurweb/scripts/aurblup.py b/aurweb/scripts/aurblup.py index 1433173c..a7d43f12 100755 --- a/aurweb/scripts/aurblup.py +++ b/aurweb/scripts/aurblup.py @@ -39,13 +39,13 @@ def main(): cur = conn.execute("SELECT Name, Provides FROM OfficialProviders") oldproviders = set(cur.fetchall()) + for pkg, provides in oldproviders.difference(providers): + conn.execute("DELETE FROM OfficialProviders " + "WHERE Name = ? AND Provides = ?", [pkg, provides]) for pkg, provides in providers.difference(oldproviders): repo = repomap[(pkg, provides)] conn.execute("INSERT INTO OfficialProviders (Name, Repo, Provides) " "VALUES (?, ?, ?)", [pkg, repo, provides]) - for pkg, provides in oldproviders.difference(providers): - conn.execute("DELETE FROM OfficialProviders " - "WHERE Name = ? AND Provides = ?", [pkg, provides]) conn.commit() conn.close() -- cgit v1.2.3-24-g4f1b