Каков предпочтительный способ обновления схем базы данных в нескольких производственных средах - PullRequest
0 голосов
/ 15 апреля 2010

Я собираюсь установить около 20 серверов с одним и тем же веб-приложением в нескольких местах, подключенных к их собственной локальной базе данных. Я буду обновлять веб-приложения удаленно (возможно, с помощью диспетчера пакетов Debian), и я уверен, что в конечном итоге потребуется обновить схемы базы данных. Поскольку каждый сервер может в конечном итоге использовать разные версии веб-приложения, мне нужен способ применить добавочные изменения к серверам.

Я думаю, что-то вроде этого. Давайте начнем с database.schema.1 как исходного выпуска базы данных и предположим, что это число увеличивается с каждой новой версией схемы. В конечном итоге я могу получить database.schema.17 в качестве текущей версии. Для новой установки это будет схема для установки. Мне кажется, что мне нужны последовательные переводы, такие как database.translation.1.2, которые конвертируют database.schema.1 в database.schema.2, database.translation.2.3 для преобразования от 2 до 3 и т. Д. До 17. Кажется, что всякий раз, когда я меняю схему, мне нужно в alter базу данных, но, возможно, мне нужно запустить какой-нибудь сценарий для update данных, которые могут быть выполнены с помощью SQL, но для этого может потребоваться внешний не SQL-скрипт.

Как правильно организовать все эти файлы? Как автоматически применить эти обновления к схеме? Где я могу хранить номер текущей версии схемы?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2010
0 голосов
/ 15 апреля 2010

Зависит от того, на каком языке и в какой среде вы работаете.

Rails решает эту проблему с помощью миграций .

...