Как поместить код MySQL в систему контроля версий? - PullRequest
3 голосов
/ 27 апреля 2010

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

Я хотел бы сделать это для хранимых процедур, а также для сценариев создания таблиц / событий / триггеров.

Ответы [ 3 ]

4 голосов
/ 27 апреля 2010

На основании ответа Михала, решение, которое я использую до сих пор:

#!/bin/bash
BACKUP_PATH=/root/database_name
DATABASE=database_name
PASSWORD=Password
rm -f "$BACKUP_PATH/*.sql"
mysqldump -p$PASSWORD --routines --skip-dump-date --no-create-info --no-data --skip-opt $DATABASE > $BACKUP_PATH/$DATABASE.sql
mysqldump -p$PASSWORD --tab=$BACKUP_PATH --skip-dump-date --no-data --skip-opt $DATABASE
hg commit -Am "automatic commit" $BACKUP_PATH
4 голосов
/ 27 апреля 2010

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

1 голос
/ 27 апреля 2010

Не совсем понимаю, что ты пытаешься сделать.

Посмотрите на Liquibase , возможно, он будет делать то, что вам нужно ...

...