When my application starts up, ot creates some tables and insert records in them.
When the app starts for the second time it should check if the tables and the records in them are exist and skip the process.
Everything is good, except what if I have a connection from 2 different users?
I can run this inside transaction, but will this be enough? Will stating transaction lock the DB and the second user will wait for transaction to complete?
Seems like letting the create table fail would be a reliable way to determine what is happening. But this procedure overall just seems better avoided. Can’t you just run an installer/updater separate from running the application?
Interesting idea bout the installer.
Except those tables will contain some additional info about the schema and the application.
So if I create/remove new table, either in my app or from psql the record will need to be inserted/deleted.