2016-12-09 4 views
-1

У меня есть приложение Shiny в RStudio, которое работает с данными, которые я извлекаю из базы данных mysql.R Shiny - соединение mysql не работает с server.R (работает из других файлов)

Соединение с mysql и запросами находится в файле вне приложения, поэтому я могу создать dataframes.

Но когда я копирую соединение с mysql и sql-запросами в server.R приложения Shiny, приложение пропускает запросы и выдает ошибку, которая не существует (Error : object 'tickets' not found).

Так что запрос mysql работает извне server.R, но не от server.R. Что я делаю не так?

Вот пример моего server.R и ui.R:

server.R

library(shiny) 
library(RMySQL) 
library(ggplot2) 
#library(ggiraph) 
library(lubridate) 

##Connect to Redmine db 
con <- dbConnect(MySQL(), 
       user = '#', 
       password = '#', 
       host = '#', 
       dbname='#') 

tickets<-dbGetQuery(con, "Select * from table") 
issues_speed_unique<-unique(na.omit(dbGetQuery(con,"Select * from table2"))) 
dbDisconnect (con) 

some aggregations.... 

shinyServer(
    function(input,output){ 
    output$tickets_week<-renderPlot(
      ggplot(data = subset(tickets, 

ui.R

library(shiny) 
library(ggplot2) 
#library(ggiraph) 
#library(htmltools) 
library(lubridate) 

shinyUI(fluidPage( 
+0

если вы добавите 'печати (билеты)' под запросом и запустить приложение, делает кадр данных для печати на консоль? – Pete900

+0

@ Pete900 извините, поздно ответ. нет, не показывает. кажется, что он пропускает прямо к тому, что находится внутри 'shinyServer ( function (input, output) {'. – adlisval

+0

Будет ли это работать, когда вы запускаете приложение браузером по сравнению с только запущенным в RStudio? – Pete900

ответ

0

Проблема в том, чтоui.R был запущен доserver.R, и, конечно, данные отсутствовали (поскольку данные были запрошены в server.R - следовательно, ошибка).

Решение было поместить код, как из server.R и от ui.R, в одном файле, называется app.R. Так, в app.R я написал код в следующем порядке:

  1. Загрузка пакетов (library(packagename)) код
  2. Сделать соединение и запросы код
  3. сервер код
  4. щ код
  5. код завершения с: shinyApp(ui = ui, server = server)

Подробнее о Shiny в одном файле - app.R файл: http://shiny.rstudio.com/articles/single-file.html

 Смежные вопросы

  • Нет связанных вопросов^_^