[aur-dev] [PATCH] git-update: Remove package details before updating

Lukas Fleischer lfleischer at archlinux.org
Fri Aug 5 19:23:58 UTC 2016


Explicitly remove all package sources, dependencies, relations, licenses
and groups before inserting new ones.

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
Based on pu.

 git-interface/git-update.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/git-interface/git-update.py b/git-interface/git-update.py
index 2820720..e6f6410 100755
--- a/git-interface/git-update.py
+++ b/git-interface/git-update.py
@@ -78,8 +78,13 @@ def save_metadata(metadata, conn, user):
     conn.execute("UPDATE PackageBases SET MaintainerUID = ? " +
                  "WHERE ID = ? AND MaintainerUID IS NULL",
                  [user_id, pkgbase_id])
-    conn.execute("DELETE FROM Packages WHERE PackageBaseID = ?",
-                 [pkgbase_id])
+    for table in ('Sources', 'Depends', 'Relations', 'Licenses', 'Groups'):
+        conn.execute("DELETE FROM Package" + table + " WHERE EXISTS (" +
+                     "SELECT * FROM Packages " +
+                     "WHERE Packages.PackageBaseID = ? AND " +
+                     "Package" + table + ".PackageID = Packages.ID)",
+                     [pkgbase_id])
+    conn.execute("DELETE FROM Packages WHERE PackageBaseID = ?", [pkgbase_id])
 
     for pkgname in srcinfo.utils.get_package_names(metadata):
         pkginfo = srcinfo.utils.get_merged_package(pkgname, metadata)
-- 
2.9.2


More information about the aur-dev mailing list