Sychronisieren Problem

  • Hallo zusammen,


    ich möchte folgendes umsetzen:


    Ich habe eine MySQL DB und eine SQLite DB. Ich möchte diese in meiner App "synchronisieren", d.h. für mich vereinfacht: Ich will einfach nur die lokale DB leeren und sie mit den Daten aus der MySQL füllen! Also keine großen Sync-Algorithmen oder so ;)
    Jetzt habe ich in den Datenbanken jeweils vier Tabellen, die jeweils nacheinander geleert und wieder gefüllt werden sollen.
    Für jede Tabelle gibt es eine Methode, die die lokalen leert und wieder füllt.
    Dafür habe ich in meiner Activity eine ASync-Task erstellt, die solange einen Ladebalken zeigt, bis fertig synchronisiert wurde.
    Jetzt kriege ich aber jede Menge Exceptions beim synchronisieren.
    Meine generelle Frage wäre: Wie kriege ich das hin, dass eine Methode nach der anderen ausgeführt wird?
    Ich habe nämlich das Gefühl, dass die sich überschneiden, weil in den Exceptions oft steht: "database is locked".
    Also das ich z.B. die Methoden so lange sperre, bis die vorherige fertig ist?
    Besten Dank


    Gruß


    M3doXX

  • @ChampS:


    Die Lösung finde ich auch super (wenn das so möglich ist...)
    Hat jemand eine Idee wie das funktionieren kann? Ich hab mal nach MySQL Dump gegoogelt, aber nichts wirklich gutes gefunden.
    Zumindest nicht, wie ich aus der App raus die .sql erstellen kann.
    Würde mich über jede Hilfe freuen!
    Besten Dank!!


    M3doXX

  • Also ich hab jetzt erstmal rausgefunden, wie ich das rein theoretisch machen kann.
    Ich schreibe ein PHP-Skript, dass mir auf meinem Server den dump erstellt und den lade ich dann runter und lese ihn in meine SQLite DB ein.
    Soweit die Theorie.
    Allerdings scheitert es jetzt bei mir schon bei Schritt 1: Das PHP Skript :D
    Hat jemand vielleicht einen Codeschnipsel für mich, der ein MySQL Dump erstellt? Ich habe bereits zwei Skripte ausprobiert, die ich in den Weiten des WWW gefunden habe, aber die haben beide nicht funktioniert...
    Also wenn mir da bei Schritt 1 schonmal jemand weiterhelfen könnte, wäre das super!!!
    Besten Dank


    Gruß


    M3doXX

  • Hast du auf dem Server ein phpmyadmin laufen? Bei vielen Providern ist das mit eingebaut.


    Damit kannst du Dumps in Form von SQL-Statements erstellen, die aber voraussichtlich ein paar Besonderheiten von MySQL enthalten - das sollte aber mit Suche/Ersetzen zu ändern sein.


    Die Dumps kannst du dann mit einer kleinen Routine in deiner App einlesen und an die SQLite abfeuern. Mach daber aber erst mal ein paar Testläufe und prüfe ob die Daten richtig drin sind.

  • Hallo UweApps,


    ja phpmyAdmin läuft. Das Problem ist aber, dass ich den Dump aus der App heraus erstellen will. Sprich : Ich klicke in meiner App auf einen Button und dann wird ein Dump von meiner MySQL (online) DB erstellt und in meine lokale DB eingelesen.
    Gibt es eine Möglichkeit phpmyadmin von aussen zu sagen, dass es einen Dump machen soll?
    Brauche ich da nicht ein eigenes Skript?


    Gruß


    M3doXX

  • hallo M3doXX,


    ich würde keinen kompletten Dump erstellen.
    Den musst du ja dann erstmal auf sqlight anpassen.


    Ich führe per JSONParser ein php-script auf dem Server aus und fülle damit explizit die einzelnen Tabellen der App.


    Gruss KHH

  • Hallo Khh,


    hättest du eventuell Codeschnipsel für mich?


    Ich hatte das ja schonmal probiert. Nur irgendwie hatte ich da ein Problem, dass die einzelnen Skripte durcheinander ausgeführt wurden und ich nicht genau wusste wie ich die explizit nacheinander ausführen kann...


    Gruß


    M3doXX

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!