Estoy usando el paquete dplyr para conectarme a PostgreSQL y mi código es el siguiente:
# Connect to local PostgreSQL via dplyr library('dplyr') localdb <- src_postgres(dbname = 'postgres', host = 'localhost', port = 5432, user = 'postgres', password = '236236') #Write table from R to PostgreSQL iris<-as.data.frame(iris) dbWriteTable(localdb$con,'iris',iris, row.names=FALSE) La conexión es exitosa, pero después de unos 5 minutos, apareció un mensaje que decía "Auto-disconnecting postgres connection (4308, 1)" . No estoy seguro de cómo surge este problema, y necesito lidiar con grandes datos que tardan más de 5 minutos en escribirse en PostgreSQL, por lo que quiero saber cómo resolver este problema de desconexión automática.
He tenido problemas similares con src_sqlite() . El error que obtuve fue Auto-disconnecting SQLiteConnection . Aparentemente, ahora se desaconseja el uso de las funciones src_* (de la documentación de tbl() ).
Sin embargo, la mejor práctica moderna es usar tbl() directamente en una DBIConnection.
Antes estaba usando el siguiente código. El código en sí mismo no devolvió ningún error. Sin embargo, después de usar la misma base de datos nuevamente, obtendría el error Auto-disconnecting SQLiteConnection .
path <- 'C:/sql.db' sql_data <- src_sqlite(path) # work on the sql_data variable tbl(sql_data) DBI::dbDisconnect(thesql$con)Como ya se dijo, se desaconseja el uso de src_sqlite. Usar el código preferido a continuación resolvió mi problema.
sql_data <- DBI::dbConnect(RSQLite::SQLite(), dbname = path) # work on the sql_data variable tbl(sql_data) DBI::dbDisconnect(thesql)Preste atención a que la declaración de desconexión cambió ligeramente y que los argumentos de SQLite() son, de hecho, argumentos de dbConnect().