diff --git a/docs/docs/deployment.md b/docs/docs/deployment.md
index a7764a951dc096be6fe2fddcb611df5fafcf43ec..0688c82bc274c3a912bd9bfef71c433a16cd3b9c 100644
--- a/docs/docs/deployment.md
+++ b/docs/docs/deployment.md
@@ -42,12 +42,6 @@ docker compose ps
 
 After that you should be able to visit http://localhost:8004/ and see the rights engine.
 
-### Migrate rights-engine database (only required once after first start) and create mongo db index
-
-```bash
-docker compose exec -it rights-engine sh -c 'python3 manage.py sqlflush | sed s/TRUNCATE/DROP\ TABLE\ IF\ EXISTS/g | python3 manage.py dbshell && echo DROP\ TABLE\ IF\ EXISTS\ django_migrations\; | python3 manage.py dbshell && python3 manage.py migrate && python3 manage.py loaddata fixtures/initial_db.json && python3 manage.py create_mongo_index'
-```
-
 ### Migrate analytics-engine database (only required once after first start)
 
 ```bash
@@ -227,12 +221,6 @@ See section `Installing Traefik`
 $ docker compose up -d
 ```
 
-#### 7. Migrate DB
-
-```console
-$ docker compose exec -it rights-engine sh -c 'python3 manage.py sqlflush | sed s/TRUNCATE/DROP\ TABLE\ IF\ EXISTS/g | python3 manage.py dbshell && echo DROP\ TABLE\ IF\ EXISTS\ django_migrations\; | python3 manage.py dbshell && python3 manage.py migrate && python3 manage.py loaddata fixtures/initial_db.json'
-```
-
 ### Analytics Engine VM setup
 
 #### 1. Clone deployment repository
diff --git a/src/Dockerfile b/src/Dockerfile
index aeda9e852d2f73eb4e2094df6980555c300ebde3..33c6280a663c48d3e8d971ee30c72f2ea70114a2 100644
--- a/src/Dockerfile
+++ b/src/Dockerfile
@@ -69,7 +69,10 @@ RUN cd frontend && npm run build
 ENV VIRTUAL_ENV=/env
 ENV PATH=/env/bin:$PATH
 
-# Gunicorn Server
-CMD ["gunicorn", "--bind", ":80", "--workers", "3", "--timeout", "240", "--access-logfile", "-", "--error-logfile", "-", "backend.wsgi"]
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+# Use entrypoint script to start the container
+ENTRYPOINT ["/entrypoint.sh"]
 
 EXPOSE 80
diff --git a/src/entrypoint.sh b/src/entrypoint.sh
new file mode 100644
index 0000000000000000000000000000000000000000..22f0f883abcc31f2aad4d94a536ebc04143dea72
--- /dev/null
+++ b/src/entrypoint.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+echo "Running database migrations and role setup..."
+python manage.py check_and_apply_migrations
+
+echo "Starting Gunicorn server..."
+exec gunicorn --bind :80 --workers 3 --timeout 240 --access-logfile - --error-logfile - backend.wsgi
diff --git a/src/providers/tests.py b/src/providers/tests.py
index dfc555c0a4bb493288a2068869a332f954a19e31..005127655ffcc9ccde357fd0b7469bc5916cfd8b 100644
--- a/src/providers/tests.py
+++ b/src/providers/tests.py
@@ -23,7 +23,6 @@ class ProviderTestCase(TestCase):
         normal_user = CustomUser.objects.create_user(self.test_user_email, self.test_user_password)
         provider_user = CustomUser.objects.create_user(self.test_provider_email, self.test_provider_password)
 
-        assign_role(provider_user, 'provider')
         assign_role(normal_user, 'user')
         assign_role(provider_user, 'provider_manager')