[ERLEDIGT] Datenbank in eine Cloud sichern (Backup)

E

enrem

Erfahrenes Mitglied
29
Hallo,

Ich möchte eine lokale Datenbank (sqlite) in eine Cloud sichern (Upload) und später evtl. wieder herunter laden (Download). Welche Cloud (GoogleDrive oder DropBox etc.) ist mir nicht so wichtig.

Hat jemand einen Tipp wie ich das realisieren kann?

Am liebsten wäre mir eine Synchronisation. Sobald sich die Datenbank verändert, soll diese autom. gesichert werden.

Würde mich sehr über ein paar Kommentare freuen.

Viele Grüße
 
Hallo enrem,

Was würde denn gegen die Standard Drive API von Google sprechen ?
(ggf. mit Timestamp)
 
Boa das ging ja schnell.

Ich tue mich etwas schwer mit dem Fingerprint.

Wenn ich diesen generiert habe und ich die API von google Drive verwende, kann ich dann nur auf mein Google-Drive Account zugreifen? Es soll ja die Google-Cloud des jeweiligen Benutzers der App verwendet werden.
 
Moment , damit man es auch versteht ...

Du möchtest mit mehreren Usern ( und dessen Account) auf ein und die gleiche DB zugreiffen .
also NICHT mit deinem Eigenen - richtig ?

Wenn ja , dann hast du zwei Möglichkeiten

a) einen gemeinsamen Google Account anlegen
b) oder du weichst z.b auf OwnCloud aus


Zur Sychronisation würde ich Timestamps nehmen, ist aber NICHT sicher.
(Der Letzte hat gewonnen)
Sicher bekommst du es nur mit Server/Client Technologie hin

P.S mit den anderen API's kenne ich mich nicht aus (DropBox etc.)
 
Hallo enrem,

mal ein Gedanke von mir: Wenn mehrere Leute auf die Datenbank zugreifen sollen und nach JEDER Änderung die lokale DB mit der "Netzwerk-DB" abgeglichen werden soll, wäre es nicht praktikabler, die DB direkt auf dem FTP Server (Sei es jetzt OwnCloud, Synology Cloud / NAS oder ein FTP bei einem Provider) liegen zu lassen und den Zugriff von der App zur DB und umgekehrt einzuprogrammieren?

Falls ich am Thema vorbeigeschreddert bin, sorry. Aber dieser Weg erscheint mir wesentlich praktikabler.
 
Nein jeder hat seine eigene Datenbank und jeder soll für sich sichern können.

Konkret habe ich eine APP die Arbeitszeiten erfasst. Die erzeugten Exceldateien und die sqlite-Datenbank liegen auf dem Datenträger. Wenn eine SD-Karte existiert werden diese dort abgelegt. Dieses Verzeichniss mit allen Unterverzeichnissen sollen autom. gesichert werden. Im Moment geht das nur zufuss über einen Intent. Das möchte ich gerne automatisch realiseren. Sollte ein Anwender seine Gerät verlieren und das Programm auf ein neues Smartphone installieren, möchte ich die Möglichkeit anbieten, die gesicherte Datenbank wieder herunter laden zu können.
[doublepost=1490797590,1490797002][/doublepost]@lordzwieback
Ja das würde ich bevorzugen wenn mehrere auf eine Datenbak zugreifen wollen. Aber das ist nicht der Fall. Die Datenbak wird nicht mit anderen geteilt. Sorry das ich mich so schlecht ausgedrückt habe. Mir war es wichtig das man die Daten offline erfassen kann und diese auch wenn man es wünscht auf dem Gerät bleiben. Der Trend geht zur Cloud und nun soll sich jeder selbst entscheiden können ob er parallel die Datenbank in eine Cloud ablegen (spiegeln) möchte.
 
Dann würde ich mir an deiner Stelle irgendwo einen FTP Server besorgen und dort eine Verzeichnisstruktur aufbauen... etwa Überordner "APP_BACKUP" und dann User-Unterordner. Jeder User erhält Login Daten für den FTP, die er in der App hinterlegen muss sowie die Schreib und Leserechte auf seinen Userordner.
Dann kannst du zB per AsyncTasks dich von deiner App aus auf den FTP einloggen und die Daten sichern oder wiederherstellen. Das Ganze geht dann theoretisch per Knopfdruck oder du lässt diese AsyncTasks in bestimmten Abständen (zB 1x täglich) laufen.

Oder gibts dafür eventuell ne bessere Lösung, was meinst du @swa00 ?
 
Hallo enrem ,

ich bin ehrlich gesagt ein wenig verwirrt, was du oben mit dem Key geschrieben hast.

Es ist ein wenig her , aber ich habe noch nie einen eindeutigen Key explizit für den User benötigt ,
maximal für den Entwickler.

Ich habe mir auch eben nochmal das Beispiel von Google angesehen .
Diese verwenden auch keinen Key

Schau mal bitte , oder ich bin definitiv blind :)
GitHub - googledrive/android-quickstart: Quickstart application showing the Google Drive API for Android


@lordzwieback

Ich würde es "kompliziert" machen (PHP/MYSQL und FCM) :)
 
Zuletzt bearbeitet:
Hallo swa00,

Das Beispiel scheint mir sehr hilfreich zu sein. Ich kann es in ein paar Stunden testen und werde dann berichten. Vorab schonmal vielen Dank.
 
  • Danke
Reaktionen: swa00 und lordzwieback
.... Dafür sind wir gerne da :)

Viel Erfolg ...
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: lordzwieback
Hallo zusammen,

ich habe nun das Beispiel in AndroidStudio geöffnet. Das Beispiel lässt sich starten und mit meinem Google-Account konnte ich mich anmelden. Nach der Anmeldung kommt folgendes Bild. Wähle ich mein Konto wird der Dialog geschlossen und anschließend wieder geöffnet.

LogCat gibt mir folgendes zurück:
03-29 17:06:49.814 22504-22504/com.google.android.gms.drive.sample.quickstart I/drive-quickstart: GoogleApiClient connection failed: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{6464745: android.os.BinderProxy@a018e9a}, message=null}

Benötige ich das hier?
Get an Android certificate and register your application
Getting Started | Drive API for Android | Google Developers

Nachtrag:
Ich habe gerade dort das Video gesehen. Ja da muss ich wohl die App registrieren....
 

Anhänge

  • ice_screenshot_20170329-193813.png
    ice_screenshot_20170329-193813.png
    11,1 KB · Aufrufe: 228
Ahh nein das habe ich nicht. Kannst du mir in kurzen Worten beschreiben wie ich das mache.
 
Schau mal bitte in dem Link oben , dort stehen in der Antwort die Schritte.
Ich bin derzeit ein wenig auf Sprung (unterwegs)

P.S Du musst dir im Prinzip von Google erst die Genehmigung nehmen , dass dein Package
den Goggle drive benutzen kann ( Developer Console )
 
Sorry den Link hatte ich nicht gleich gesehen. Ja damit komme ich bestimmt klar.
 
Ich konnte mich leider seit gestern erst wieder mit dem Thema beschäftigen. Nun eine kleine Rückmeldung.

Das mit GoogleDrive war mir dann doch etwas aufwändig, werde mich später mit eurer Hilfe nocheinmal damit beschäftigen. Meine Lösung ist zunächst einmal, die DropBox. Das ging relativ leicht von der Hand. Eine Validierung benötigt man in diesem Sinne nicht, lediglich ein DropBox Account. Dort erzeugt man in der Konsole eine App und erhält 2 Schlüssel. App-Key und Secret-Key. Diese reichen, um dann in der App mit der API der DropBox zu arbeiten.

Hier ein paar Quellen:
Programmierschnittstelle: Dropbox-API schweißt Cloud und Apps zusammen - Golem.de
Introducing the Dropbox Sync API for mobile developers
Android Sync API tutorial - Dropbox
Documentation - Sync API for Android

1. Zunächst habe ich mir die API herunter geladen.
2. Die Datei "dropbox-android-sdk-1.6.3.zip" entpackt
3. Ich habe nicht wie vorgeschrieben die jar-Dateien aus dem Ordner Lib in Android-Studio kopiert und dort als Libary importiert, sondern ich habe mir gleich das Beispiel "DBRoulette" als Projekt imporitert.
4. Meine beiden Schlüssel oben im Code von "DBRoulette" angegeben und siehe da, es läuft.

Jetzt einmal bin ich soweit die Datenbank und andere Dateien per Klick rauf und runter zu laden.

Vorab aber schonmal besten Dank.

Nachtrag:
Habe nun eine Anleitung gemacht

 

Anhänge

  • Schritt1.png
    Schritt1.png
    6,5 KB · Aufrufe: 212
  • Schritt2.png
    Schritt2.png
    32,7 KB · Aufrufe: 234
  • Schritt3.png
    Schritt3.png
    9,6 KB · Aufrufe: 214
  • Schritt4 Upload.png
    Schritt4 Upload.png
    25,9 KB · Aufrufe: 231
Zuletzt bearbeitet:
  • Danke
Reaktionen: lordzwieback und swa00

Ähnliche Themen

S
Antworten
33
Aufrufe
2.669
Sempervivum
S
S
  • softwareunkundig
Antworten
1
Aufrufe
885
jogimuc
J
Zurück
Oben Unten