### Apache Airflow version

2.1.3 (latest released)

### Operating System

Debian

### Versions of Apache Airflow Providers

_No response_

### Deployment

Other Docker-based deployment

### Deployment details

Custom docker image on k8s

### What happened

New dag version was written in same named dag. The only difference was one of specified tags got changed in case, for ex. "test" to "Test". With huge amount of dags this causes scheduler immediately to crash due to constraint violation.

### What you expected to happen

Tags are refreshed correctly without crash of scheduler.

### How to reproduce

1. Create dag with tags in running airflow cluster
2. Update dag with change of case of one of tags for ex. "test" to "Test"
3. Watch scheduler crash continuously

### Anything else

Alternative option is to make tags case sensitive...

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

airflow/models/base.py
#
#
#
from typing import Any
from sqlalchemy import MetaData
from sqlalchemy.ext.declarative import declarative_base
from airflow.configuration import conf
SQL_ALCHEMY_SCHEMA = conf.get("core", "SQL_ALCHEMY_SCHEMA")
metadata = (
    None if not SQL_ALCHEMY_SCHEMA or SQL_ALCHEMY_SCHEMA.isspace() else MetaData(schema=SQL_ALCHEMY_SCHEMA)
)
Base = declarative_base(metadata=metadata)  
ID_LEN = 250
class Operator: