Как изменить схему базы данных, чтобы ввести новые функции или изменить текущие функции - PullRequest
3 голосов
/ 15 июля 2010

Я разрабатываю приложение, используя Zend Framwork, используя Git для контроля версий.

Каков наилучший подход для обновления схемы и базы данных, когда один из нас обновляет структуру базы данных?

В настоящее время мы должны удалить таблицы и воссоздать их вручную, чтобы отразить новые обновления.

Ответы [ 4 ]

1 голос
/ 15 июля 2010

Заслуживающей внимания реализации менеджера схем для приложений ZF является Akrabat Db Schema Manager от Rob Allen .Он использует сценарии миграции, как предложено @ceteras выше.Ссылка выше содержит код для использования с Zend_Tool, хотя библиотека может использоваться сама по себе.

0 голосов
/ 16 ноября 2011

В последнее время большинство фреймворков предоставляют функцию, называемую migrations.. Миграции - это удобный способ структурированного и организованного изменения базы данных. Вы можете редактировать фрагменты SQL вручную, но тогда вы будете обязаны сообщать другим разработчикам, что им нужно их запустить и запустить. Вам также необходимо отслеживать, какие изменения необходимо выполнить на рабочих машинах при следующем развертывании.

В ZendFramework, однако, есть та же концепция, но с именем Db_Schema_Manager. Вы можете использовать это, чтобы отслеживать изменения в базе данных, сделанные любым разработчиком, все, что вам нужно сделать, это запустить ZendTools заново.

Вот ссылка на то, как можно использовать Db_Schema_Manager: http://framework.zend.com/wiki/display/ZFPROP/Zend_Db_Schema_Manager+-+Rob+Allen

0 голосов
/ 15 июля 2010

Я бы взглянул на DBDeploy

dbdeploy - это инструмент управления изменениями базы данных.Он предназначен для разработчиков или администраторов баз данных, которые хотят развивать свой дизайн базы данных или реорганизовывать свою базу данных простым, контролируемым, гибким и частым образом.

Здесь также есть хорошее руководство об использовании DBDeploy вместе с Phing ( система сборки проекта PHP или инструмент сборки на основе Apache Ant )

0 голосов
/ 15 июля 2010

Я всегда отслеживаю все изменения на двух фронтах:

  1. Я сохраняю пустую версию базы данных и обновляю структуру каждый раз

  2. Я стараюсь писать небольшие сценарии для каждого небольшого изменения.В основном это сценарии DDL (изменение таблицы, добавление столбца и т. Д.), И они всегда хранятся в четко определенной структуре с комментариями, связывающими операторы с задачами из Bugzilla / Jira, независимо от того, что используется.Большую часть времени я проверяю, что эти сценарии безопасны для выполнения несколько раз без ошибок.

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

Все должно быть протестировано, по крайней мере, на одной копии производственной среды.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...