Вопрос

Хорошо, скажем, у вас есть два DBS. Тот, который вы используете в качестве мастер -шаблона, который проходит различные изменения, допустим, мы сейчас находимся в ревизии 3. Но второй БД является копией шаблона, как это было в ревизии 1.

Поскольку DB 2 используется, вы не хотите сбросить какие -либо таблицы, но вам нужно обновить структуру всего БД до последней версии DB 1.

Существует ли какой -либо способ сделать это без необходимости вручную проходить и вносить все те же изменения снова и снова (над многими DBS в различных версиях) и не теряя никаких данных?

Я знаю, что целостность данных является проблемой, потому что некоторые данные больше не могут быть действительными и т. Д., Но нет ли способ переопределить это?

В идеале я просто хочу иметь возможность использовать MySqldump структуры DB 1 и перезаписать любые противоречивые таблицы в DB 2 с помощью новых версий из DB 1, не теряя все данные. Если есть способ сделать это в Phpmyadmin, это было бы грандиозно.

Это было полезно?

Решение

Можешь попробовать MySQL Workbench; это позволяет вам

  1. Создайте схему из базы данных MySQL.
  2. Импортируйте схему в Workbench MySQL с помощью реверса
  3. а затем сравните его со схемой в DB версии 1, чтобы генерировать SQL alter сценарий

Другие советы

Либо ваш разъем DB делает это для вас (некоторые рамки Python могут развивать DB), либо вы должны сделать это вручную.

Если вы должны сделать это вручную, лучший подход - иметь возможность создать всю базу данных с некоторыми данными из сценариев. Это должно быть полностью автоматическим. После создания базовой версии вы применяете скрипт после сценария для развития БД (изменяющие таблицы и т. Д.).

Сделайте это в автоматических тестах, и вы можете автоматически мигрировать БД при установке следующей версии на сайте клиента.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top