mirror of
https://github.com/BioArchLinux/bioarchlinux-tools.git
synced 2025-03-09 22:53:31 +00:00
fix dbmanager: remove old CRAN before update
This commit is contained in:
parent
e283d884ac
commit
9726e5e042
1 changed files with 13 additions and 2 deletions
|
@ -106,6 +106,14 @@ def remote_is_newer(url, mtime) -> bool:
|
||||||
return url_date > file_time.astimezone()
|
return url_date > file_time.astimezone()
|
||||||
|
|
||||||
|
|
||||||
|
def remove_all_cran_pkg(engine):
|
||||||
|
'''
|
||||||
|
remove all CRAN packages from database.
|
||||||
|
'''
|
||||||
|
session = Session(engine)
|
||||||
|
session.query(PkgMeta).filter_by(repo='CRAN').delete()
|
||||||
|
session.commit()
|
||||||
|
|
||||||
def update_DB(engine, min_ver=None, first_run=False, mtime=None,
|
def update_DB(engine, min_ver=None, first_run=False, mtime=None,
|
||||||
bioc_mirror="https://bioconductor.org", cran_mirror="https://cran.r-project.org"):
|
bioc_mirror="https://bioconductor.org", cran_mirror="https://cran.r-project.org"):
|
||||||
'''
|
'''
|
||||||
|
@ -148,7 +156,9 @@ def update_DB(engine, min_ver=None, first_run=False, mtime=None,
|
||||||
# insert or skip
|
# insert or skip
|
||||||
for pkgmeta in pkgmetas:
|
for pkgmeta in pkgmetas:
|
||||||
add_or_update(session, PkgMeta, pkgmeta)
|
add_or_update(session, PkgMeta, pkgmeta)
|
||||||
# CRAN
|
# CRAN
|
||||||
|
logging.info("Removing old package list for CRAN")
|
||||||
|
remove_all_cran_pkg(engine)
|
||||||
url = f"{cran_mirror}/src/contrib/PACKAGES"
|
url = f"{cran_mirror}/src/contrib/PACKAGES"
|
||||||
logging.info("Downloading CRAN Package List")
|
logging.info("Downloading CRAN Package List")
|
||||||
f = get_package_meta(url, mtime)
|
f = get_package_meta(url, mtime)
|
||||||
|
@ -158,7 +168,8 @@ def update_DB(engine, min_ver=None, first_run=False, mtime=None,
|
||||||
|
|
||||||
# insert or skip
|
# insert or skip
|
||||||
for pkgmeta in pkgmetas:
|
for pkgmeta in pkgmetas:
|
||||||
add_or_update(session, PkgMeta, pkgmeta)
|
# we already deleted all CRAN packages, so we can just add them.
|
||||||
|
session.add(pkgmeta)
|
||||||
|
|
||||||
|
|
||||||
def add_or_skip(session, table, pkgmeta):
|
def add_or_skip(session, table, pkgmeta):
|
||||||
|
|
Loading…
Add table
Reference in a new issue