diff --git a/changelog.d/8276.misc b/changelog.d/8276.misc
new file mode 100644
index 0000000000000000000000000000000000000000..e7c899bea8823d814be9263cc82715508abb87fa
--- /dev/null
+++ b/changelog.d/8276.misc
@@ -0,0 +1 @@
+Do not attempt to upgrade upgrade database schema on worker processes.
diff --git a/docs/systemd-with-workers/system/matrix-synapse-worker@.service b/docs/systemd-with-workers/system/matrix-synapse-worker@.service
index 39bc5e88e8629c84f111d818d48313f121bbab14..cb5ac0ac8754c3f353e127fd23b0b707b0e3f98f 100644
--- a/docs/systemd-with-workers/system/matrix-synapse-worker@.service
+++ b/docs/systemd-with-workers/system/matrix-synapse-worker@.service
@@ -1,9 +1,14 @@
 [Unit]
 Description=Synapse %i
 AssertPathExists=/etc/matrix-synapse/workers/%i.yaml
+
 # This service should be restarted when the synapse target is restarted.
 PartOf=matrix-synapse.target
 
+# if this is started at the same time as the main, let the main process start
+# first, to initialise the database schema.
+After=matrix-synapse.service
+
 [Service]
 Type=notify
 NotifyAccess=main