Metabase instance deployed to Docker Azure app service keep resetting

I have a metabase instance running on Azure app service using docker. i noticed that the DB conenction setting are not presistant . every time i restart the app service it reset all the setting and takes me through setup again . any idea how to fix this ?

Hi @fballan
Make sure you launch the container with a persistent application database - like Postgres:
https://www.metabase.com/docs/latest/operations-guide/running-metabase-on-docker.html#using-postgres-as-the-metabase-application-database

There's a work-in-progress tutorial for setting up Azure:
https://github.com/metabase/metabase/blob/add/azure-deployment-guide/docs/operations-guide/running-metabase-on-azure.md

Once it's completed, then it will be added to https://www.metabase.com/docs/latest/operations-guide/installing-metabase.html

Thank you for your reply man that was very helpful. but isn't this what is happening when i setup . I have a separate MySQL DB that is used by the other app service and metabase are used to read that data and visualise it .

@fballan Post "Diagnostic Info" from Admin > Troubleshooting.

the moment i restart my app service or my instance it will go into setup again

this i s my diagnostic
{
"browser-info": {
"language": "en-US",
"platform": "MacIntel",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.76",
"vendor": "Google Inc."
},
"system-info": {
"file.encoding": "UTF-8",
"java.runtime.name": "OpenJDK Runtime Environment",
"java.runtime.version": "11.0.10+9",
"java.vendor": "AdoptOpenJDK",
"java.vendor.url": "https://adoptopenjdk.net/",
"java.version": "11.0.10",
"java.vm.name": "OpenJDK 64-Bit Server VM",
"java.vm.version": "11.0.10+9",
"os.name": "Linux",
"os.version": "5.4.0-1031-azure",
"user.language": "en",
"user.timezone": "GMT"
},
"metabase-info": {
"databases": [
"mysql"
],
"hosting-env": "unknown",
"application-database": "h2",
"application-database-details": {
"database": {
"name": "H2",
"version": "1.4.197 (2018-03-18)"
},
"jdbc-driver": {
"name": "H2 JDBC Driver",
"version": "1.4.197 (2018-03-18)"
}
},
"run-mode": "prod",
"version": {
"date": "2021-04-08",
"tag": "v0.38.4",
"branch": "release-x.38.x",
"hash": "057b6bb"
},
"settings": {
"report-timezone": null
}
}
}

@fballan So you're using H2 as the application database, which I'm guessing you don't have in a persistent volume. H2 should not be used for Metabase in production. Use Postgres/MySQL as I already provided links to.
Follow the work-in-progress tutorial I linked to.

@flamber I have 2 databases running currently on my metabase instance 1-with engine: MySQL and 2-with engine:h2 which is sample database provided by metabase. Now removing sample dataset should solve the resetting problem?
After removing sample database "Diagnostic info" still says "application-database": "h2"

@SyedHamza It's very important to understand the difference between the Metabase application database, where Metabase stores all it's information, and your data sources, which you use to make queries against.

If you're seeing "application-database": "h2", then you are using H2 for the application database and should migrate away from that:
https://www.metabase.com/docs/latest/operations-guide/migrating-from-h2.html

thankyou @flamber for the quick response. I have deployed metabase on azure app service. So I can't use the mentioned cmds. Is there any other way I can do it?

@SyedHamza I don't know this service. You'll have to find the documentation for accessing the service's container, so you can get the H2 file, which is stored in /metabase.db/ and then do the migration elsewhere and setup a new service that uses the correct application database.