Как синхронизировать базу данных с тестового сервера на рабочий сервер - PullRequest
2 голосов
/ 29 июня 2010

Если у вас есть тестовый сервер и рабочий сервер.Как вы синхронизируете базу данных?

Сначала вы добавляете данные на тестовый сервер, как вы делаете код на тестовом сервере?

Как это обычно обрабатывается?

Ответы [ 4 ]

0 голосов
/ 29 июня 2010

МЫ делаем все надписи разработки базы данных, включая сценарии, для добавления записей в таблицы поиска.Эти скрипты находятся в системе контроля версий и имеют версии, как и любой другой код.Чтобы отправить изменения из dev в prod, мы запускаем скрипты для этой версии.Это может включать любые изменения, необходимые для поиска таблиц типов, а также изменения структуры таблиц, sps, пользовательских функций, представлений и т. Д. Так как его нельзя внедрить в prod без скрипта (у нас есть команда по управлению конфигурацией, которая занимается разработчиками, а не разработчиками),у нас нет проблем с людьми, использующими сценарии или систему контроля версий.

Чтобы вернуться от prod к dev, мы повторно запускаем последнюю резервную копию prod, а затем повторно запускаем сценарии dev, которые еще не были переведены на prod.

0 голосов
/ 29 июня 2010

I дампы управления версиями SQL (как сделано mysqldump). Я считаю, что обычно это хороший портативный формат.

У некоторых платформ есть такие понятия, как Fixtures Django , которые выгружают данные моделей в файл JSON или XML, чтобы вы могли управлять версиями на сервере и с сервера и загружать его там, где вам это нужно. Имеется ли у вас что-то подобное, зависит от вашей платформы.

Вы говорите о получении живой версии в вашей производственной среде. Если бы я был тобой, я бы согласился на почти живую жизнь. Создайте сценарий дампа на сервере и напишите небольшой сценарий, чтобы перенести его в вашу производственную среду, или просто полагайтесь на управление версиями.

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

0 голосов
/ 29 июня 2010

Я использую Navicat для синхронизации моих серверов разработки и производства.Продукт Navicat позволяет синхронизировать структуру (например, новые поля) и синхронизировать данные (данные).Основным ограничением является то, что вы не можете синхронизировать таблицы, у которых нет первичного ключа.И это не всегда так быстро, если нужно перенести много записей.

0 голосов
/ 29 июня 2010

Это зависит от того, насколько вы можете соединить две базы данных.

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

Вместо этого, если вы хотите разделить два экземпляра, просто реплицируйте с mysqldump s .

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