[PATCH v2] aurblup: make provider updates more robust
Lukas Fleischer
lfleischer at archlinux.org
Mon Jan 21 20:58:50 UTC 2019
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 <eschwartz at archlinux.org>
Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
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 1433173..a7d43f1 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()
--
2.20.1
More information about the aur-dev
mailing list