Как вы обновляете структуру всей базы данных MySQL? - PullRequest
1 голос
/ 06 октября 2009

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

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

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

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

в идеале я просто хочу иметь возможность использовать mysqldump структуры db 1 и перезаписывать любые конфликтующие таблицы в db 2 новыми версиями из db 1 без потери всех данных. если есть какой-нибудь способ сделать это в phpmyadmin, это будет здорово.

Ответы [ 2 ]

2 голосов
/ 06 октября 2009

Вы можете попробовать MySQL workbench ; это позволяет вам

  1. Создание схемы из базы данных MySQL.
  2. импортировать схему в рабочую среду MySQL путем обратного инжиниринга db версии 3,
  3. , а затем сравните его со схемой в БД версии 1 для создания сценария SQL alter.
0 голосов
/ 06 октября 2009

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

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

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

...