<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.m-6959551262397298699msoplaintext, li.m-6959551262397298699msoplaintext, div.m-6959551262397298699msoplaintext
        {mso-style-name:m_-6959551262397298699msoplaintext;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.E-MailFormatvorlage18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1091782806;
        mso-list-type:hybrid;
        mso-list-template-ids:-357406404 67567631 67567641 67567643 67567631 67567641 67567643 67567631 67567641 67567643;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hallo Sven,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>zur Konvertierung verweise ich auf einen post von jau im PV-Forum: <a href="https://www.photovoltaikforum.com/thread/173921-datenbank-portierung/?postID=2624435#post2624435">https://www.photovoltaikforum.com/thread/173921-datenbank-portierung/?postID=2624435#post2624435</a> und meine Ergänzung dazu: <a href="https://www.photovoltaikforum.com/thread/173921-datenbank-portierung/?postID=2925923#post2925923">https://www.photovoltaikforum.com/thread/173921-datenbank-portierung/?postID=2925923#post2925923</a><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Konkret läuft das dann so:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Sicherung (sqldump) der DB als Fallback <o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ändern der alten DB mit: php /var/www/volkszaehler.org/bin/doctrine orm:schema-tool:update --force<o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Sicherung der DB für Transfer<o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span style='mso-list:Ignore'>4.<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>neue DB mit doctrine anlegen php /var/www/volkszaehler.org/bin/doctrine orm:schema-tool:create<o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span style='mso-list:Ignore'>5.<span style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Sicherung aus 3 auf neuer DB einspielen<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Das funktioniert eben bis auf das Sichern (3) und Einspielen (5) der Daten in die neue DB (properties, entities werden mit copy korrekt übertragen). Und bei mir ist es genauso wie bei dir, ändere ich den transfer mode für data von pk auf copy bekomme ich nur 1000 Datensätze rüber.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Grüße<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Micha<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> volkszaehler-users [mailto:volkszaehler-users-bounces@demo.volkszaehler.org] <b>Im Auftrag von </b>dies und das<br><b>Gesendet:</b> Sonntag, 25. Dezember 2022 15:22<br><b>An:</b> volkszaehler.org - users<br><b>Betreff:</b> Re: [vz-users] Datenbankportierung und neue Struktur<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Hallo Micha, <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>ich habe das gleiche Problem und viel probiert, einen Teil Erfolg hatte ich mit der Änderung<o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt'>in dbcopy.yaml für DATA von pk auf copy.</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt'>Das Ergebnis war zwar das dbCopy Meldete alle rows übertragen zuhaben beim Nachschauen aber immer </span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt'>nur 1000 Einträge in der neuen Zieldatenbank waren egal ob mysql oder sqlight. </span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt'>Mit meinem Halbwissen bin ich leider nicht weitergekommen.</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt'>Mich würde interessieren wie du die Konvertierung hinbekommen hast ich habe dazu keine Lösung gefunden.</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt'>Mfg</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt'>Sven</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Am Sa., 24. Dez. 2022 um 13:01 Uhr schrieb Michael Hartmann <<a href="mailto:hartmann-micha@web.de">hartmann-micha@web.de</a>>:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><div><p class=m-6959551262397298699msoplaintext>Hallo,<o:p></o:p></p><p class=m-6959551262397298699msoplaintext> <o:p></o:p></p><p class=m-6959551262397298699msoplaintext>aktuell läuft eine komplette VZ-Installation auf einem Raspi3 mit µSD. Ich möchte DB, Frontend und Middleware auf einen weiteren Raspi4 mit SSD auslagern.<o:p></o:p></p><p class=m-6959551262397298699msoplaintext> <o:p></o:p></p><p class=m-6959551262397298699msoplaintext>Die DB-Struktur hat sich zwischenzeitig geändert. Die alte, automatisch vergebene fortlaufende ID ist entfallen und der primary key ist nun die Kombination aus channel_id und timestamp.<o:p></o:p></p><p class=m-6959551262397298699msoplaintext> <o:p></o:p></p><div style='border:none;border-bottom:solid windowtext 1.0pt;padding:0cm 0cm 1.0pt 0cm;border-color:currentcolor currentcolor windowtext'><p class=m-6959551262397298699msoplaintext>Ich habe als Probelauf die DB auf meinem Test-/Spielsystem auf die neue Struktur konvertiert. Das hat funktioniert. Ich kann auf alle Daten zugreifen und auch über die API manuell Daten schreiben.<o:p></o:p></p><p class=m-6959551262397298699msoplaintext> <o:p></o:p></p></div><p class=m-6959551262397298699msoplaintext><span lang=EN-US>MariaDB [volkszaehler]> show columns from data;</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>+------------+------------+------+-----+---------+-------+</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>| Field      | Type       | Null | Key | Default | Extra |</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>+------------+------------+------+-----+---------+-------+</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>| channel_id | int(11)    | NO   | PRI | NULL    |       |</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>| timestamp  | bigint(20) | NO   | PRI | NULL    |       |</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>| value      | double     | NO   |     | NULL    |       |</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>+------------+------------+------+-----+---------+-------+</span><o:p></o:p></p><div style='border:none;border-bottom:solid windowtext 1.0pt;padding:0cm 0cm 1.0pt 0cm;border-color:currentcolor currentcolor windowtext'><p class=m-6959551262397298699msoplaintext><span lang=EN-US>3 rows in set (0.028 sec)</span><o:p></o:p></p></div><p class=m-6959551262397298699msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext>Nun wollte ich die DB mittel dbcopy in eine SQLite DB sichern um sie auf den Raspi4 einzuspielen. <span lang=EN-US>Da meckert dbcopy das es keinen simple primary key in data findet…</span><o:p></o:p></p><div style='border:none;border-bottom:solid windowtext 1.0pt;padding:0cm 0cm 1.0pt 0cm;border-color:currentcolor currentcolor windowtext'><p class=m-6959551262397298699msoplaintext><span lang=EN-US> </span><o:p></o:p></p></div><p class=m-6959551262397298699msoplaintext><span lang=EN-US>entities: copying 11 rows (overwrite)</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>[============================] 100%  < 1 sec/< 1 sec  11 rows</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>properties: copying 90 rows (overwrite)</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>[============================] 100%  < 1 sec/< 1 sec  90 rows</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>entities_in_aggregator: copying 0 rows (overwrite)</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>    0 [->--------------------------] < 1 sec 6.0 MiB</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US>In CopyCommand.php line 40:</span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US> </span><o:p></o:p></p><div style='border:none;border-bottom:solid windowtext 1.0pt;padding:0cm 0cm 1.0pt 0cm;border-color:currentcolor currentcolor windowtext'><p class=m-6959551262397298699msoplaintext><span lang=EN-US>  <span style='background:red'>Table data doesn't have a simple primary key</span></span><o:p></o:p></p></div><p class=m-6959551262397298699msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext><span lang=EN-US> </span><o:p></o:p></p><p class=m-6959551262397298699msoplaintext>Wie bekomme ich dbcopy erklärt das es nun channel_id und timestamp als primary key verwenden soll?<o:p></o:p></p><p class=m-6959551262397298699msoplaintext> <o:p></o:p></p><p class=m-6959551262397298699msoplaintext>Viele Grüße<o:p></o:p></p><p class=m-6959551262397298699msoplaintext> <o:p></o:p></p><p class=m-6959551262397298699msoplaintext>Micha<o:p></o:p></p></div></div></div></blockquote></div></div></body></html>