Подтвердить что ты не робот

Как синхронизировать базу данных разработки и производства

Знаете ли вы какие-либо приложения для синхронизации двух баз данных - во время разработки иногда требовалось добавить одну или две строки таблицы или новую таблицу или столбец. Обычно я пишу каждый оператор sql в каком-то файле и во время загрузки пути я вызываю эти строки в своей производственной базе данных (ранее поддерживал ее). Я работаю с базами данных mySQL и postreSQL.

Какова ваша практика и какие приложения вам помогут в этом.

4b9b3361

Ответ 1

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

Этот набор ссылок, предоставленный Джеффом Этвудом и написанный К. Скоттом Алленом, подробно объясняет, как это должно выглядеть: и они делают это лучше, чем я могу здесь написать: http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html

Ответ 2

Для PostgreSQL вы можете использовать Другой инструмент для проверки PostgreSQL. Он может разбить две SQL-дампы очень быстро (несколько секунд на db с примерно 300 таблицами, 50 видами и 500 хранимыми процедурами). Таким образом, вы можете легко найти свои изменения и получить sql diff, который вы можете выполнить.

Из страницы APGDiff:

Другой инструмент PostgreSQL Diff - это простой инструмент проверки PostgreSQL, который полезен для обновления схемы. Инструмент сравнивает два файла дампа схемы и создает выходной файл, который (после некоторых модификаций вручную) подходит для обновления старой схемы.

Ответ 3

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

В противном случае я знаю, что многие люди используют redgate для SQLServer.

Ответ 4

Еще одно голосование за сравнение SQL RedGate

http://www.red-gate.com/products/SQL_Compare/index.htm

Не хотел бы жить без него!

Изменить: Извините, похоже, это только для SQL Server. Тем не менее, если у каких-либо пользователей SQL Server есть тот же вопрос, я бы определенно рекомендовал этот инструмент.

Ответ 5

Если вы пишете свои SQL-запросы для своей базы данных разработки (которые, я думаю, представляют собой серии инструкций DDL, таких как CREATE, ALTER и DROP), почему бы вам не следить за ними, записывая их в таблицу, индекс "версии"? Затем вы сможете:

  • отслеживать изменения вашей версии.
  • создайте небольшую процедуру, позволяющую "автоматическое" обновление вашей производственной базы данных, отправив записанные инструкции в базу данных.

Ответ 6

Мне очень нравится инструменты EMS.

Инструменты доступны для всех популярных БД, и у вас одинаковый пользовательский интерфейс для каждого типа БД.

Одним из инструментов является DB Comparer.

Ответ 7

ЖАБЫ

несколько раз сохранял много задниц в прошлом. Почему люди запускают sql без стратегии выхода?

тоже хорошо подходит redgate.

Ответ 8

Продукт Siebel (CRM, Sales и т.д.) имеет встроенный инструмент для выравнивания производственной базы данных с одним из разработчиков (dev2prod).

В противном случае вы должны придерживаться вручную выполненных скриптов.

Ответ 9

Navicat имеет мастер синхронизации структуры, который обрабатывает это.

Ответ 10

Я решаю это, используя Hibernate. Он может обнаруживать и автосоздавать отсутствующие таблицы, столбцы и т.д.

Ответ 11

Вы можете добавить некоторую автоматизацию в ваш текущий способ делать вещи, используя dbDeploy или аналогичный script. Это позволит вам отслеживать изменения вашей схемы и обновлять/откатывать вашу схему по своему усмотрению.

Ответ 13

DBV - "Управление версиями базы данных стало проще!" (РНР)