Now I have a good understanding of the fix. Let me provide a cleaner, more properly formatted patch for this Django issue:

--- a/django/core/checks/model_checks.py
+++ b/django/core/checks/model_checks.py
@@ -4,7 +4,8 @@ import operator
 from itertools import chain
 
 from django.apps import apps
-from django.core.checks import Error, Tags, register
+from django.conf import settings
+from django.core.checks import Error, Tags, Warning, register
 
 
 @register(Tags.models)
@@ -35,12 +36,23 @@ def check_all_models(app_configs=None, **kwargs):
     for db_table, model_labels in db_table_models.items():
         if len(model_labels) != 1:
-            errors.append(
-                Error(
-                    "db_table '%s' is used by multiple models: %s."
-                    % (db_table, ', '.join(db_table_models[db_table])),
-                    id='models.E028',
+            model_labels_str = ', '.join(db_table_models[db_table])
+            if settings.DATABASE_ROUTERS:
+                errors.append(
+                    Warning(
+                        "db_table '%s' is used by multiple models: %s."
+                        % (db_table, model_labels_str),
+                        hint=(
+                            "You have configured settings.DATABASE_ROUTERS. Verify "
+                            "that %s are correctly routed to separate databases."
+                        ) % model_labels_str,
+                        id='models.W035',
+                    )
                 )
-            )
+            else:
+                errors.append(
+                    Error(
+                        "db_table '%s' is used by multiple models: %s."
+                        % (db_table, model_labels_str),
+                        id='models.E028',
+                    )
+                )
     return errors