Синхронизация схем баз данных среди разработчиков - PullRequest
5 голосов
/ 24 апреля 2009

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

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

Какой удобный и простой способ синхронизации часто меняющейся схемы базы данных?

Мы работаем с CakePHP (не уверен, поможет ли это мне найти хорошие решения).

EDIT

Нашел несколько инструментов для выполнения этой работы в CakePHP: http://book.cakephp.org/view/734/Schema-management-and-migrations

А вот и дополнительный сайт: http://bakery.cakephp.org/articles/view/cake-db-migrations-v2-1

Ответы [ 5 ]

2 голосов
/ 24 апреля 2009

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

Миграции предоставляют несколько функций:

  • Инструменты для автоматизации создания / обновления таблиц. Инструменты отслеживают версию схемы и какие сценарии необходимо запустить.
  • Некоторые инструменты миграции предоставляют возможность запуска кода (c #, ruby ​​и т. Д.) Вместо сценариев sql. Библиотеки кода, предоставляемые инструментом миграции, обычно лучше способны абстрагировать зависимые от базы данных части и сделать ваши скрипты базы данных более независимыми от базы данных.

Для Ruby доступны инструменты (миграции являются важной частью Rails), C # и Java. Конечно, и другие языки.

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

1 голос
/ 21 февраля 2013

Cake 2.x-совместимый плагин на Github:

https://github.com/CakeDC/migrations

1 голос
/ 19 июня 2009

Миграция базы данных CakePHP от Joel Moss на данный момент является лучшим решением на данный момент.

Описание проекта от github:

Миграция базы данных для CakePHP 1.2 - это сценарий оболочки, поддерживаемый консолью CakePHP, который позволяет вам управлять схемой базы данных, не затрагивая ни капли SQL. Он основан на реализации Migrations в Ruby on Rails и использует пакет Pear's MDB2, поэтому поддерживает все поддерживаемые базы данных.

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

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

0 голосов
/ 20 января 2010

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

http://code.google.com/p/php-mysql-version-control/

0 голосов
/ 29 июля 2009

Вот отличный пример использования Git, но в любом случае это относится и к SVN. http://thewebandthings.synodicsolutions.com/2009/06/13/cakephp-versioning-database-changes-with-git/

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