Hello Martin
The most recommended is to have a Production Database and a Development Database.
This way you can develop the changes in the Development Database and when you have them cleaned, you pass them to Production through the use of pack-out pack-in.
For example you can call one idempiere4.1pro and the other idempiere4.1dev
If you work in an Eclipse environment you can define several Run_Time.
If you work in Normal environment, you must run setup.sh every time you change the database.
or
You can also do it very easily by editing the Idempiere Configuration file
idempiere.properties (Example)
ValidateConnectionOnStartup=xyzN
AutoNew=xyzN
Connection=xyzCConnection[name\=localhost{localhost-idempiere4.1pro-adempiere},AppsHost\=localhost,WebPort\=8080,SSLPort\=8443,type\=PostgreSQL,DBhost\=localhost,DBport\=5434,DBname\=idempiere4.1pro,BQ\=false,FW\=false,FWhost\=,FWport\=0,UID\=adempiere,PWD\=adempiere]
UITheme=xyzAdempiere Theme
AutoCommit=xyzY
ShowAcct=xyzY
There you can change the data, that setup.sh places on file, with any editor.
I hope it helps you
regards
Luis Amesty