从github加载数据库

时间:2014-08-17 14:05:25

标签: r github download rcurl

我正在尝试下载存储在Github存储库中的数据库,但我完全堆叠了。 下载的数据库是空的,里面没有表..我试图在临时文件上下载,进行一些操作并删除这个数据库。 可以帮我吗?我尝试了2种方法,但没有使用它们。

第一种方法语法:

# download database
  library(RCurl)
  options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))
  tmpDB <- getBinaryURL( "https://raw.githubusercontent.com/pbiecek/archivist/master/backpack.db") 
    tfS <- tempfile()
  writeBin( tmpDB, tfS )
  file.rename(from = tfS , to= "backpack.db")
  tfS <- sub( x = tfS, pattern ="\\\\file.+", replacement="")

  # perform local operations on database

  ...

  # delete downloaded database
  file.remove( paste0( tfS, "\\backpack.db" ) )
  tfS <- NULL  

第二种方法语法:

  # download database
  GitUrl <- "https://raw.githubusercontent.com/pbiecek/archivist/master/backpack.db" 
    LocDir <- tempfile()
  # LocDir <- paste0( LocDir, "\\") mb its not neccesary
  download.file( url = GitUrl, destfile = LocDir )

  # operations on database

  # delete downloaded database
  file.remove( paste0( LocDir, "backpack.db" ) )
  LocDir <- NULL  

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

使用RSQLite包访问下载的数据库:

myFile <- "https://raw.githubusercontent.com/pbiecek/archivist/master/backpack.db"
library(RCurl)
myData <- getBinaryURL(myFile, ssl.verifypeer = FALSE)
writeBin(myData, 'test.db')
library("RSQLite")
drv <- dbDriver("SQLite")
con <- dbConnect(drv, "test.db")
dbListTables(con)
> dbListTables(con)
[1] "artifact" "tag"
> dbListFields(con, "artifact")
[1] "md5hash"     "name"        "createdDate"
> dbListFields(con, "tag")
[1] "artifact"    "tag"         "createdDate"