<div dir="ltr"><div>HI Jurgen</div><div><br></div><div>Thanks a lot for the answer, I will have to deep on this because I tried but it seems that I am not updating the data by replacing <old_database> with <new database></div><div><br></div><div>That is what I did, <br></div><div><br></div><div><br></div><div>for m in iz.namelist():<br>    data = iz.read(m)<br>    print(type(data))<br>    if m.endswith(".qgs"):<br>        data = data.decode('UTF-8')<br>        print(type(data))<br>        # modify projects XML in data <br>        data2 = data.replace('nbi_test', 'nbi_testings_12_02_2023')<br>        print(data2)<br>        oz.writestr(m, data2.encode("UTF-8"))<br>    else:<br>        oz.writestr(m, data)</div><div><br></div><div><br></div><div>It seems that when I did in console, the data is replaced but then when execute this</div><div><br></div><div>q.prepare("UPDATE adare_prod.qgis_projects SET content=:content,metadata=:metadata WHERE name=:name")<br>v = QByteArray(outzip.getvalue())<br>q.bindValue(":content", v, QSql.In | QSql.Binary)<br>q.bindValue(":metadata", metadata)<br>q.bindValue(":name", name)<br>q.exec_()</div><div><br></div><div>answer is True (more than once QGIS crashed) but then after reoening again, it still remains the same</div><div><br></div><div>Thanks you again<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 12, 2023 at 7:09 PM Jürgen E. Fischer via QGIS-User <<a href="mailto:qgis-user@lists.osgeo.org">qgis-user@lists.osgeo.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Jorge,<br>
<br>
On Sun, 12. Feb 2023 at 17:18:20 +0000, Jorge Lopez via QGIS-User wrote:<br>
> What I presume is that I need the way that column was generated, Martin<br>
> Dobias created this in the core qgis and maybe he can provide some light on<br>
> this.<br>
<br>
The content column contains the qgz file.  To decode and update it you could do<br>
something like this:<br>
<br>
from PyQt5.QtCore import QByteArray<br>
from PyQt5.QtSql import QSqlDatabase, QSqlQuery, QSql<br>
from io import BytesIO<br>
from zipfile import ZipFile, ZIP_DEFLATED<br>
<br>
db = QSqlDatabase.addDatabase("QPSQL")<br>
db.setConnectOptions("service=…")<br>
db.open()<br>
<br>
q = QSqlQuery(db)<br>
q.exec_("SELECT content,metadata,name FROM qgis_projects WHERE name='project-name'")<br>
q.next()<br>
<br>
inzip = BytesIO(q.value(0))<br>
outzip = BytesIO()<br>
<br>
metadata = q.value(1)<br>
name = q.value(2)<br>
<br>
iz = ZipFile(inzip)<br>
oz = ZipFile(outzip, mode='w', compression=ZIP_DEFLATED)<br>
<br>
for m in iz.namelist():<br>
    data = iz.read(m)<br>
    if m.endswith(".qgs"):<br>
        data = data.decode('UTF-8')<br>
<br>
        # modify projects XML in data<br>
<br>
        oz.writestr(m, data.encode("UTF-8"))<br>
    else:<br>
        oz.writestr(m, data)<br>
<br>
oz.close()<br>
<br>
q.prepare("UPDATE qgis_projects SET content=:content,metadata=:metadata WHERE name=:name")<br>
v = QByteArray(outzip.getvalue())<br>
q.bindValue(":content", v, QSql.In | QSql.Binary)<br>
q.bindValue(":metadata", metadata)<br>
q.bindValue(":name", name)<br>
q.exec_()<br>
<br>
<br>
Jürgen<br>
<br>
-- <br>
Jürgen E. Fischer           norBIT GmbH             Tel. +49-4931-918175-31<br>
Dipl.-Inf. (FH)             Rheinstraße 13          Fax. +49-4931-918175-50<br>
Software Engineer           D-26506 Norden            <a href="https://www.norbit.de" rel="noreferrer" target="_blank">https://www.norbit.de</a><br>
QGIS release manager (PSC)  Germany                 IRC: jef on Libera|OFTC<br>
_______________________________________________<br>
QGIS-User mailing list<br>
<a href="mailto:QGIS-User@lists.osgeo.org" target="_blank">QGIS-User@lists.osgeo.org</a><br>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-user" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-user</a><br>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-user" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-user</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">=========================================<br>Jorge López Pérez<br><br><font size="2"><b>Web/GIS programmer</b><br><br></font></div><div><font size="2">webpage.: <a href="http://jorgelopezph.herokuapp.com" target="_blank">http://jorgelopezph.herokuapp.com</a><br></font></div><div dir="ltr"><font size="2">
mobile: +34 606 98 70 84<br>
skype: <a href="http://jorgelopez.ph" target="_blank">jorgelopez.ph</a></font><br></div><div dir="ltr">=========================================<br></div></div></div></div></div></div></div></div>