Thanks Regis and Andeas ☺ The big sed on the filesystem could work on .qgs files, but what about .qgz files ? ☺
Regards Jacky Volpes Développeur python HR-Team pour la Société du Canal de Provence Direction des Systèmes d’Information Tél. 04 42 66 70 34 Le Tholonet - CS 70064 - 13182 Aix-en-Provence CEDEX 5 [cid:image001.png@01D34C22.F8A861A0] De : Régis Haubourg [mailto:regis.haubo...@gmail.com] Envoyé : jeudi 26 novembre 2020 17:52 À : Andreas Neumann <a.neum...@carto.net> Cc : VOLPES-EXT, Jacky <jacky.volpes-...@canal-de-provence.com>; QGIS Developers List <qgis-developer@lists.osgeo.org> Objet : Re: [QGIS-Developer] Modify project before loading I can't agree more with Andreas. The best path is to migrate your project pgservicefile. You will have to handle this as a migration , saving before all project files, and applying a script to replace datasource definitions ( a shell or python script can help, but a big sed on the file system also does the job). As you are on this, I suggest you add some default connection options as you are on it to preserve your database and speed up table listing as suggested here : [image.png] Best regards Régis m/RegisHaubourg/status/https://pbs.twimg.com/media/Eats5wgWkAA0VdV?format=png&name=900x9001273231305199804417?s=20https://twitter.com/RegisHaubourg/status/1273231305199804417?s=2https://pbs.twimg.com/media/Eats5wgWkAA0VdV?format=png&name=900x900ttps://twitter.com/RegisHaubourg/status/1273231305199804417?s=20 Le jeu. 26 nov. 2020 à 16:20, Andreas Neumann <a.neum...@carto.net<mailto:a.neum...@carto.net>> a écrit : Hi Jacky, I recommend to use PostgreSQL service names instead of hostname/port/db settings. The projects would connect the layers to a central pg_service.conf file that you can put on a network drive. On the day the db hostname changes, you can centrally switch the hostname/port/db in just a single text-file. This also helps to switch between test/integration/production environments by simply pointing to a different pg_service.conf file (see Options --> System --> Environment and user defined variables. You can use either PGSERVICEFILE or PGSYSCONFDIR). Seems to me easier and more flexible than what you have in mind with scripting and signals. Greetings, Andreas On 2020-11-26 16:06, VOLPES-EXT, Jacky wrote: Hello QGIS dev team ☺ I need to modify QGIS project file at reading (loading) time. The database hostname used in the company is changing soon, and I need this to be transparent for the users. The problem is that all their layers with the old database connections (uri) will trigger a connection error, having the old hostname. The idea is to update the .qgs file that is being opened with the new hostname with a text-replacement plugin, save the file, and eventually load it in QGIS. So that the user will not see any difference or error message. Sadly, the QgsProject.readLayer signal is sent after the project has been loaded, hence after the connection error messages… Any suggestion/idea welcome! Thanks, Jacky Volpes Développeur python HR-Team pour la Société du Canal de Provence Direction des Systèmes d’Information Tél. 04 42 66 70 34 Le Tholonet - CS 70064 - 13182 Aix-en-Provence CEDEX 5 [cid:image001.png@01D34C22.F8A861A0] _______________________________________________ QGIS-Developer mailing list QGIS-Developer@lists.osgeo.org<mailto:QGIS-Developer@lists.osgeo.org> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer _______________________________________________ QGIS-Developer mailing list QGIS-Developer@lists.osgeo.org<mailto:QGIS-Developer@lists.osgeo.org> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________ QGIS-Developer mailing list QGIS-Developer@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer