I would like to add layers into a spatialite database. I have used the QgsVectorFileWriter method:

parcelasDis = QgsVectorLayer(parcDisSHP, 'Parcelas_Unicas', "ogr")

QgsVectorFileWriter.writeAsVectorFormat(parcelasDis, "/xxx/xxx/xxx/xxx/database.sqlite", "utf-8", None, "SQLite", False, None ,["SPATIALITE=YES"])

But this method it seems good for create the database and insert just one layer. If I repeat the operation for other layers, this rewrites the Database again.

What should I do to add more layers to this DB?

Is there some others ways to do this operation?

1 Answer 1


I will reply myself. This is not a direct aproach, but a workaround that it works:

import subprocess
subprocess.call(["spatialite_tool", "-i", "-shp", "/xxxx/xxxxx/xxxxx/xxxxx/PARCELA_xxxxx", "-d", "/home/xxx/xxxx/xxxxx/villar.sqlite", "-t", "Parcelas", "-g", "Geometry", "-c", "UTF-8","-s","3042", "--type", "MULTIPOLYGON"])

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.