If your local files are exporting but nothing is being pulled from the database I would suspect an authentication/ permissions issue.
There are a number of ways that QGIS/PG authentication can work in a project, mainly: - Basic (plaintext) stored in the QGIS Project - Insecure and not recommended, but convenient if you want to make a copy of your project - Auth manager - Each user profile has it's own qgis-auth.db which is sqlite. You would need to share different auths between users and projects by using the same authid. Note that I don't think that loading the QGIS project from PyQGIS is automatically going to load your auth config though, and it may need to be instantiated in your script [1]. My suspicion is that you are using this method and the QGIS GUI unlocks it for you, resulting in the varied result. You could always try to run most of your script from the python console in the project to check if that works too. - PGSERVICE - You can also use pg_service.conf (it even supports password=), or similar connection environment variables, which is both convenient and significantly more secure than plaintext credentials in the project. If managed well it can offer a good level of security, but a word of caution is that misuse of it can be a lot more dangerous from a security persepctive. Good for testing purposes though... But note that the way layers are defined and loaded in a project file will vary between service based connections and those managed by the auth manager. You can also make a new (or copy an existing) user profile to define the database connection to prevent the risk of breaking your existing project and db configs. I think doing some quick tests to verify whether or not it is an authentication issue is recommended, because auth management can be a bit of a rabbit hole. Regards [1] https://docs.qgis.org/3.16/en/docs/pyqgis_developer_cookbook/authentication.html [2] https://www.postgresql.org/docs/13/libpq-pgservice.html On Tue, 17 Aug 2021 at 23:28, Baker, Matthew <[email protected]> wrote: > Hi all, > > When using PyQGIS with Python 3.8 I can't seem to get the PostGIS layers > of a QGIS layout to export to PDF while the local / shapefile layers will. > > The manual export to PDF from the QGIS Layout window will export the > PostGIS layers just fine along with the SHP layers. > > From the code below, can anyone spot what I might be missing? > > (Running QGIS 3.18 on Linux Mint 20 with Python 3.8) > > Thank you, and let me know if more info is needed! > > (BEGIN CODE) > > #!/usr/bin/env python3 > import os > from qgis.core import ( > #layout and general > QgsProject, QgsLayoutExporter, QgsApplication > ) > > QgsApplication.setPrefixPath("/usr", True) > gui_flag = False > app = QgsApplication([], gui_flag) > app.initQgis() > > project_path = os.getcwd() + '/rec_centers.qgz' > project_instance = QgsProject.instance() > project_instance.setFileName(project_path) > project_instance.read() > > #print layer names in layout (not used anywhere else): > names = [layer.name() for layer in > QgsProject.instance().mapLayers().values()] > print ('Layers in project: ', names) > > #layout stuff > manager = QgsProject.instance().layoutManager() > layout = manager.layoutByName("test_layout") # name of the layout > > #export stuff > exporter = QgsLayoutExporter(layout) > exporter.exportToPdf(project_instance.absolutePath() + > "/output/layout.pdf", > QgsLayoutExporter.PdfExportSettings()) > > app.exitQgis() > > (END CODE) > > -m > -- > > MATTHEW BAKER > Spatial Information Manager > Denver Public Schools > Department of Enrollment and Campus Planning > > 1860 Lincoln St., Denver, CO 80203 | 11th Floor > 720-423-3419 | [email protected] | planning.dpsk12.org > > Students First . Integrity . Equity . Collaboration . Accountability . Fun > . > _______________________________________________ > Qgis-user mailing list > [email protected] > List info: https://lists.osgeo.org/mailman/listinfo/qgis-user > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user >
_______________________________________________ Qgis-user mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-user Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
