У меня есть sqlite db, где я создаю таблицы и ежедневно добавляю новые результаты. Этот процесс был ручным, зайдя в RStudio и нажал запустить!
Я решил запланировать свои сценарии с помощью Jenkins, и последние 5 часов я не мог его запустить, так как постоянно получал следующую ошибку:
Error in rsqlite_bind_rows(rs@ptr, value) : unable to open database file Calls: source ... tryCatch -> tryCatchList -> rsqlite_bind_rows -> .Call
Первоначально думал, что это связано с разрешениями, поэтому, как хороший гражданин Unix, я изменил свою базу данных на 777. Та же ошибка!
Затем (к сожалению) пошел в кроличью нору обновления пакетов: dplyr
, dbplyr
, DBI
- прочитать все последние изменения в каждом пакете и т. д. Не повезло...
Пока я не увидел мигание dbname.sqlite3-journal
в окне файлов Rstudio. Как оказалось, этот файл создается sqlite для временных таблиц и индексов.
Очевидно, что этот файл исчезнет после завершения всех транзакций и отключения от БД.
и, очевидно, у Дженкинса нет разрешения на изменение этого файла.
Обходной путь - дать полную запись в каталог, что я делаю в данный момент и работаю.
Но мне интересно, есть ли способ отправить этот файл на /var/tmp
вместо этого? Не в восторге от стратегии 777.
что-то типа:
con <- DBI::dbConnect(RSQLite::SQLite(), db, create = F, journal='/var/tmp')
temp_store_directory
pragma. - person krlmlr   schedule 22.07.2017