Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Sqlite nach mysql umziehen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Sqlite nach mysql umziehen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
2 Beiträge 2 Kommentatoren 1.5k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • sissiwupS Offline
    sissiwupS Offline
    sissiwup
    schrieb am zuletzt editiert von
    #1

    Hallo,

    wer seine sqlite Daten nach mysql umziehen möchte, anbei eine Skizze, wie das geht:

    Daten aus sqlite exportieren:

    cd /opt/iobroker/iobroker-data/sqlite
    sqlite3
    .open sqlite.db
    .mode csv
    .output sources
    select * from sources;
    .output datapoints
    select * from datapoints;
    .output ts_bool
    select * from ts_bool;
    .output ts_numer
    select * from ts_number;
    .output ts_string
    select * from ts_string;
    .exit
    
    

    In der mysql-DB anmelden und Importtabellen erzeugen (ich nutze dafür toad)

    create TABLE iobroker.old_ts_bool like iobroker.ts_bool;
    create TABLE iobroker.old_ts_number like iobroker.ts_number;
    create TABLE iobroker.old_ts_string like iobroker.ts_string;
    create TABLE iobroker.old_datapoints like iobroker.datapoints;
    create TABLE iobroker.old_sources like iobroker.sources;
    
    

    Dann für jede Tabelle die Daten importieren (also 5x):

    LOAD DATA INFILE '/opt/iobroker/iobroker-data/sqlite/sources' 
    INTO TABLE iobroker.old_sources 
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\n';
    

    Spalten hinzufügen:

    alter TABLE iobroker.old_datapoints ADD new_id int;
    alter TABLE iobroker.old_sources ADD new_id int;
    

    neue id´s raussuchen und in die neuen Spalten einfügen(der select ist nur zum Prüfen):

    select * from iobroker.old_datapoints o,iobroker.datapoints d where o.name=d.name;
    update iobroker.old_datapoints o SET new_id = (select id FROM iobroker.datapoints d WHERE d.name=o.name);
    select * from iobroker.old_sources o,iobroker.sources s where o.name like concat("%",s.name,"%") ;
    update iobroker.old_sources o SET new_id = (select id FROM iobroker.sources s WHERE o.name like concat("%",s.name,"%"));
    

    Jetzt noch die Daten übertragen (bitte _string,_bool und _number)(also 3x):

    select s.new_id as _from,ack,d.new_id as id,q,ts,val 
    from iobroker.old_ts_string o,iobroker.old_datapoints d,iobroker.old_sources s 
    WHERE o.id = d.id and d.new_id IS NOT NULL and o._from = s.id and s.new_id IS NOT NULL ;
    
    insert INTO  iobroker.ts_string (_from,ack,id,q,ts,val) (select s.new_id as _from,ack,d.new_id as id,q,ts,val 
    from iobroker.old_ts_string o,iobroker.old_datapoints d,iobroker.old_sources s 
    WHERE o.id = d.id and d.new_id IS NOT NULL and o._from = s.id and s.new_id IS NOT NULL );
    

    Anschließend noch die Import-Tabellen wieder leeren:

    delete FROM iobroker.old_datapoints ;
    delete FROM iobroker.old_sources  ;
    delete FROM iobroker.old_ts_bool  ;
    delete FROM iobroker.old_ts_number  ;
    delete FROM iobroker.old_ts_string  ;
    

    MfG

    Sissi

    –-----------------------------------------

    1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


    1 Antwort Letzte Antwort
    2
    • C Offline
      C Offline
      CaneTLOTW
      schrieb am zuletzt editiert von CaneTLOTW
      #2

      @sissiwup said in Sqlite nach mysql umziehen:

      select s.new_id as _from,ack,d.new_id as id,q,ts,val

      Vielen Dank für die Zusammenfassung.
      Ich konnte damit erfolgreich eine sqlite Datenbank mit 16 Mio. Einträgen nach MatrinaDB übertragen.

      insert INTO  iobroker.ts_string (_from,ack,id,q,ts,val) (select s.new_id as _from,ack,d.new_id as id,q,ts,val 
      

      Musste ich nur um ignore ergänzen

      insert ignore INTO  iobroker.ts_string (_from,ack,id,q,ts,val) (select s.new_id as _from,ack,d.new_id as id,q,ts,val 
      

      Da es immer wieder zu Fehlern kam.

      Dadurch konnten zwar einige Datensätze nicht übertragen werden, bisher sind mir jedoch keien Lücken aufgefallen....

      1 Antwort Letzte Antwort
      0
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate
      FAQ Cloud / IOT
      HowTo: Node.js-Update
      HowTo: Backup/Restore
      Downloads
      BLOG

      826

      Online

      32.5k

      Benutzer

      81.7k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Anmelden

      • Du hast noch kein Konto? Registrieren

      • Anmelden oder registrieren, um zu suchen
      • Erster Beitrag
        Letzter Beitrag
      0
      • Home
      • Aktuell
      • Tags
      • Ungelesen 0
      • Kategorien
      • Unreplied
      • Beliebt
      • GitHub
      • Docu
      • Hilfe