Почему моя внешняя реплика Cloud SQL не отражает изменения схемы (например, новые столбцы) после миграции Django?

Я использую Службу миграции облачных баз данных Google (DMS) для репликации данных из автономной базы данных PostgreSQL в Экземпляр Cloud SQL for PostgreSQL, сконфигурированный как внешняя первичная реплика.

Задание миграции выполняется в режиме CDC (сбор данных об изменениях) с использованием непрерывной репликации. С данными, похоже, все в порядке: новые строки и обновления успешно реплицируются.

Однако после запуска makemigrations и migrate Django в исходной базе данных, в которой добавлены новые столбцы и переименованы другие, изменения схемы не отражаются в облачной SQL—реплике. Новые столбцы просто не существуют в пункте назначения.

🔍 Что я сделал:

  • Источник: автономный экземпляр PostgreSQL.
  • Цель: установка Cloud SQL для PostgreSQL в качестве внешней реплики.
  • Пользователь репликации имеет соответствующие привилегии и подключен по протоколу mTLS.
  • Работа активная, с "оптимальным" параллелизмом и состоянием здоровья.
  • Репликация данных (ВСТАВКА/ОБНОВЛЕНИЕ/УДАЛЕНИЕ) работает отлично.
  • Изменения схемы, подобные ALTER TABLE, ADD COLUMN, RENAME COLUMN, не отражаются в реплике.
<время работы/>

❓ Вопрос:

Как я могу настроить DMS или Cloud SQL для репликации изменений схемы (например, ALTER TABLE или CREATE COLUMN) из источника в реплику? Или необходимо вручную применить изменения схемы к целевой системе?

Меня вполне устраивают обходные пути или официальные рекомендации — просто нужна ясность в отношении правильного подхода к эволюции схемы в этой настройке.

<время работы/>

Во время непрерывных миграций автоматически обновляются только изменения языка обработки данных (DML), в то время как изменения языка определения данных (DDL) являются обязанностью пользователя для обеспечения совместимости между исходной и целевой базами данных и могут быть выполнены двумя способами — обратитесь к этому документация.

Также рекомендуется ознакомиться с известными ограничениями вашего сценария миграции, прежде чем приступать к миграции базы данных. Смотрите здесь ограничения, характерные для использования базы данных PostgreSQL в качестве источника.

Вернуться на верх