FB3
Новичок
Как хранить SQL файлы в SVN
На первый взгляд видятся два варианта:
1. Хранить SQL файл, где содержатся все данные по таблицам и обновлять его при изменениях полей/индексов, добавлении/удалении таблиц.
Плюсы:
легко отследить изменения в файле с помощью лога/диффа СВН
легко установить систему с нуля
поддерживается целостность хранимых данных
Минусы:
для обновления таблицы пишем запрос руками и никуда не сохраняем
2. Хранить начальный SQL файл и в отдельных файлах хранить патчи для таблиц, т.е. при любом изменении полей/индексов создавать новый файл, в которым будут содержаться всякие ALTER TABLE и, если нужно, то разные UPDATE.
Плюсы:
можно взять и кодом из отдельного файла(ов) обновить базу данных, т.е. не писать запрос руками
Минусы:
не поддерживается целостность хранимых данных
чтобы установить систему с нуля (добавить новый сервер), нужно заимпортить кучу файлов в определенном порядке
Можно хранить и то и то, но получается, что тогда храним лишнюю информацию.
На практике сейчас мне больше нравится первый вариант, поскольку проект свой, следовательно, таблички один раз апдейтятся на всех серверах и дальше запросы для обновления не нужны, т.е. хранить их отдельно, как во втором варианте, я не вижу смысла.
Какие есть еще плюсы/минусы? Как храните вы?
На первый взгляд видятся два варианта:
1. Хранить SQL файл, где содержатся все данные по таблицам и обновлять его при изменениях полей/индексов, добавлении/удалении таблиц.
Плюсы:
легко отследить изменения в файле с помощью лога/диффа СВН
легко установить систему с нуля
поддерживается целостность хранимых данных
Минусы:
для обновления таблицы пишем запрос руками и никуда не сохраняем
2. Хранить начальный SQL файл и в отдельных файлах хранить патчи для таблиц, т.е. при любом изменении полей/индексов создавать новый файл, в которым будут содержаться всякие ALTER TABLE и, если нужно, то разные UPDATE.
Плюсы:
можно взять и кодом из отдельного файла(ов) обновить базу данных, т.е. не писать запрос руками
Минусы:
не поддерживается целостность хранимых данных
чтобы установить систему с нуля (добавить новый сервер), нужно заимпортить кучу файлов в определенном порядке
Можно хранить и то и то, но получается, что тогда храним лишнюю информацию.
На практике сейчас мне больше нравится первый вариант, поскольку проект свой, следовательно, таблички один раз апдейтятся на всех серверах и дальше запросы для обновления не нужны, т.е. хранить их отдельно, как во втором варианте, я не вижу смысла.
Какие есть еще плюсы/минусы? Как храните вы?