[RESUELTO] Sincronizar Base en la nube, automáticamente

Discute sobre las herramientas de la base de datos

[RESUELTO] Sincronizar Base en la nube, automáticamente

Notapor Urxvt » Dom Jul 16, 2017 12:16 pm

¡Hola a todos!

He visto que en LibreOffice 5 existe la posibilidad de abrir archivos del LibreOffice que estén subidos en la nube, por ejemplo en Google Drive. Esto funciona bien en documentos de Write o Calc, pero es lento en Base (quizá porque internamente hace consultas SQL y eso obliga a estar leyendo contínuamente los datos en la nube).

Pienso que es mejor tener una carpeta en local sincronizada con Google Drive, y después de usar y cerrar la base de datos (cuando ya se ha borrado el archivo que se genera automáticamente), sincronizar manualmente la carpeta con la que está en la nube (comando 'grive'); lo hago así en GNU/Linux. Sé que en Windows usando la aplicación oficial de Google Drive se sincronizan automáticamente, pero no es así usando 'grive'.

¿Podría ejecutar ShellScript desde el propio Base, de modo que antes de cerrar la bd me pregunte si quiero sincronizarla, y si pulso que sí, sea el propio Base el que ejecute el comando 'grive' automáticamente? No conozco los límites de la API de BASIC, y por eso pregunto.

Si no es posible, ¿cómo lo hacéis vosotros? ¿Qué me recomendáis?

¡Saludos y gracias!
Última edición por Urxvt el Dom Jul 16, 2017 10:59 pm, editado 2 veces en total
Kubuntu + LibreOffice 4.2 / Debian 9 & i3wm + LibreOffice 5.2.7.2
Urxvt
 
Mensajes: 39
Registrado: Vie Mar 10, 2017 10:13 pm

Re: Sincronizar Base en la nube, automáticamente

Notapor RMG » Dom Jul 16, 2017 7:21 pm

Hola,

Personalmente, lo que hago es usar LO o AOO como interfaz y SQLite como motor de base de datos.Se gana mucho en estabilidad y velocidad por lo que puedes trabajar directamente en la nube.

Saludos
OpenOffice 4.1.5 y LibreOffice 5.4.5.1 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RMG
 
Mensajes: 3333
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Sincronizar Base en la nube, automáticamente

Notapor Urxvt » Dom Jul 16, 2017 10:48 pm

He descubierto que se pueden ejecutar comandos de ShellScript con la función Shell. De este modo he creado una macro que se ejecuta cuando se cierra el documento y lo que hace es preguntar si se quiere sincronizar la BD antes de salir, y si la respuesta es afirmativa la sincroniza. Cuando se ha sincronizado, aparece el mensaje de «Sincronizada». Este es el código que he realizado:

Código: Seleccionar todo   Expandir vistaContraer vista
Sub Sincronizar()
   Dim syncronize As integer
   syncronize = MsgBox ("¿Quiere sincronizar la BD en Google Drive?", 4, "Sincroniza")
   If syncronize = 6 Then
      Shell ("bash -c 'cd $HOME/Grive/ && grive && notify-send Sincronizada'", true)
   End if                     
End Sub


No obstante, sería mejor sincronizar el archivo cada vez que se guarden los cambios. Pero entonces el archivo temporal LCK también se sube a la nube. Pero esto tampoco es ningún problema. A la vez, y eso ya es otro tema, también podría hacer un script que haga la sincronización al arrancar el sistema para bajar los archivos actualizados, si los hay.

Por el momento desconozco SQLite, así que voy a leerme la documentación y haré algunas pruebas. Tal vez me llegue a ser más cómodo que lo que acabo de hacer.

Saludos y gracias.
Kubuntu + LibreOffice 4.2 / Debian 9 & i3wm + LibreOffice 5.2.7.2
Urxvt
 
Mensajes: 39
Registrado: Vie Mar 10, 2017 10:13 pm

Re: [RESUELTO] Sincronizar Base en la nube, automáticamente

Notapor Urxvt » Lun Jul 17, 2017 9:21 am

Cuando entro en Windows, la aplicación oficial de Google Drive ya sincroniza automáticamente, por lo tanto esta función debe ser filtrada, además de que da error al cerrar porque no encuentra los comandos especificados en la función Shell —algo que es obvio y lógico—.

Para solucionar esto, dejo aquí la solución por si es de interés para otros. Se trata de encerrar el contenido de la función con un condicional:

Código: Seleccionar todo   Expandir vistaContraer vista
If GetGUIType = 4 Then

End sub


Si GetGUIType es 4 significa que es UNIX (se entiende UNIX-like). Fuente: https://help.libreoffice.org/3.3/Basic/GetGuiType_Function_Runtime/es
Kubuntu + LibreOffice 4.2 / Debian 9 & i3wm + LibreOffice 5.2.7.2
Urxvt
 
Mensajes: 39
Registrado: Vie Mar 10, 2017 10:13 pm

Re: [RESUELTO] Sincronizar Base en la nube, automáticamente

Notapor Urxvt » Mar Jul 25, 2017 7:05 pm

Hola RMG. Me estoy leyendo un manual sobre como conectar AOO y LO con un archivo de SQLite pero me encuentro con algunas desventajas, por ejemplo: una vez creada la tabla, no se puede modificar, como añadir nuevos campos o cambiar los tipos de datos.

Realmente usar SQLite sería una gran solución ya que me permitiría separar los datos de la interficie gráfica (para añadirle nuevas consultas o formularios sin tener que estar pidiendo que no la actualicen durante X horas), algo que también me interesa. Pero es una BD que usamos varias personas y normalmente le hacemos modificaciones o le añadimos campos que en un principio no fueron previstos.

En todo caso, esto me sirve para aprender muchas cosas. Así que gracias de nuevo por la info! (De momento seguiré manteniendo la solución que expuse en su momento).

Edito a día 2 de Enero de 2018 para evitar que el hilo suba: encuentro interesante destacar lo bien que va MEGAsync en GNU/Linux. He hecho la prueba editando bases de datos y no hay ningún tipo de problema. Es una lástima que no haya buenas herramientas de sincronización de Google Drive para GNU/Linux: grive requiere hacer la sincronización manualmente, y rclone es más potente pero no hace sincronización bidireccional, es más parecido al comando rsync, que permite hacer una copia diferencial de ruta1 a ruta2.
Última edición por Urxvt el Mar Ene 02, 2018 1:22 pm, editado 1 vez en total
Kubuntu + LibreOffice 4.2 / Debian 9 & i3wm + LibreOffice 5.2.7.2
Urxvt
 
Mensajes: 39
Registrado: Vie Mar 10, 2017 10:13 pm

Re: [RESUELTO] Sincronizar Base en la nube, automáticamente

Notapor RMG » Mié Jul 26, 2017 12:09 pm

Hola,

Si que puedes crear campos o modificarlos. Para ello debes instalar el complemento SQLite manager en Firefox. Creo recordar que mauricio en su web tiene un tutorial de como hacerlo.

Básicamente es tener instalado el navegador Firefox, en complementos buscas SQLitemanager y lo instalas. Desde aquí puedes trabajar SQLite como si fuera una BD normal.

Saludos
OpenOffice 4.1.5 y LibreOffice 5.4.5.1 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RMG
 
Mensajes: 3333
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: [RESUELTO] Sincronizar Base en la nube, automáticamente

Notapor Urxvt » Vie Oct 05, 2018 9:49 pm

Hola de nuevo. Perdón por revivir un tema tan antiguo y resuelto, pero quería aportar algo de información en el mismo.

Sí que se pueden modificar las bases de datos hechas con SQLite y sin necesidad del plugin SQLitemanager para Firefox... Por ejemplo, con sqlitebrowser. Dejo el enlace por si alguien llega aquí y no quiere pensar (como yo en su día) que únicamente es posible con el plugin para Firefox.

https://github.com/sqlitebrowser/sqlitebrowser

¡Saludos!
Kubuntu + LibreOffice 4.2 / Debian 9 & i3wm + LibreOffice 5.2.7.2
Urxvt
 
Mensajes: 39
Registrado: Vie Mar 10, 2017 10:13 pm


Volver a Base

¿Quién está conectado?

Usuarios navegando por este Foro: mauricio y 14 invitados