We recently upgraded the servers to 21.01.1 and created a new workspace to my understanding the surveys from old version is kept as default workspace and separated from new workspace. new survey using new workspace is proceeding very well and the information is recorded. However when you connect to the database (postgres) only default schema is visible. Please assist us to view a new schema in the database.
Let me start with a cautionary note: database storage structure of Survey Solutions is for application internal use only and is NOT meant to be accessed directly, other than backup and similar maintenance purposes.
The rest of your question is unfortunately unclear, in PostgreSQL there is a default schema called ‘public’, we never directly created or used it (comes from the default template in pg), all our data were in different schema(s). With the new workspaces feature, in the same database we have more schemas, some of them storing global data, others workspace-specific. I am intentionally not giving any schema names as examples here, please see above my note about internal use.
So on the working application there are definitely schemas present in the database and they are of course visible. If you see an empty database, you must be looking at a wrong database.
@lwanda, changes like the one you observed (change of the database structure/schema) happened in the past and will happen in the future.
Even if your code is working now, direct manipulation of the database may cause data loss in the future as we are not maintaining (or promising to maintain) any particular database structure (any version update may introduce changes to that).
To access the data in Survey Solutions use the API calls or export the data from the web interface.
Your caution is well observed. We only access database for backup purpose, and we don’t touch the public schema.
My question was on survey solution created schemas, the ones starting with hq-. A new version of survey solution is improved to enable creation of different workspaces. If you create a new workspace it automatically creates a new schema on the database. We tested it on test server and it was ok and the new schema was visible through pgAdmin. However when the same was deployed on production server, the workspace was successfully created but the schema is not visible for backup.
I hope the issue is clear now.
I’m still not sure I understand the problem:
- If the application works and allows changes from the GUI (i.e creating new workspace, new users, interviews etc etc) all those changes are stored in a database, there is no other place.
- And if there is something in a database, pgadmin (or any other client) is able to access and see that something.
So there must be something else going on and your question doesn’t contain all the information, or I’m not reading it correctly, because both statements above must be either together true or together false - i.e. if objects are created in the application, they are stored/visible/accessible in the database. And if the database doesn’t contain something, it cannot be present/visible from the application.
So I’m again leaning toward the conclusion that your production application is storing data in a different database than you’re accessing with pgadmin. Can you check the connection string in the application settings (pay attention if there are appsettings.ini and appsettings.production.ini and value is present in both, production file value will be taken)?