diff --git a/demo_reset.sh b/demo_reset.sh
index a307985c93e21e3c92592e37ced94181e96873f3..f39c4d9bada469fbfea82f0eb89bb5652edc49a6 100755
--- a/demo_reset.sh
+++ b/demo_reset.sh
@@ -38,6 +38,7 @@ docker compose -f docker-compose.demo.yml stop web
 # Reset the database
 rm db.sqlite3
 cp db.demo.sqlite3 db.sqlite3
+chown 100:100 db.sqlite3
 
 # Reset the media
 rm -rd demo_media/*
@@ -50,6 +51,10 @@ docker compose -f docker-compose.demo.yml up -d
 wait_for_container "web"
 wait_for_container "opensearch"
 
+# Migrate the database and collect static files
+docker compose -f docker-compose.demo.yml exec web python manage.py migrate --noinput
+docker compose -f docker-compose.demo.yml exec web python manage.py collectstatic --no-input --clear
+
 # Wait until we can reach opensearch
 os_ip=$(get_ip_address "opensearch")
 echo "$os_ip"
diff --git a/demo_start.sh b/demo_start.sh
index 768e04222443b48eb8cbf873fae87888af49f803..444b965ce22638a34fac6723217ef9521547ce0e 100755
--- a/demo_start.sh
+++ b/demo_start.sh
@@ -34,6 +34,7 @@ get_ip_address() {
 
 # Get database ready
 cp db.demo.sqlite3 db.sqlite3
+chown 100:100 db.sqlite3
 
 # Backup media
 tar -cJvf demo_media.tar.xz ./demo_media
@@ -45,6 +46,10 @@ docker compose -f docker-compose.demo.yml up -d
 wait_for_container "web"
 wait_for_container "opensearch"
 
+# Migrate the database and collect static files
+docker compose -f docker-compose.demo.yml exec web python manage.py migrate --noinput
+docker compose -f docker-compose.demo.yml exec web python manage.py collectstatic --no-input --clear
+
 # Wait until we can reach opensearch
 os_ip=$(get_ip_address "opensearch")
 echo "$os_ip"