База данных разработки и производства?

Я работаю с PHP и mySQL. Я, наконец, обрел контроль над исходным кодом, и я вполне доволен всей разработкой (тестированием) v production v repository для части PHP.

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

Любые мысли о том, куда идти? И, если вы думаете, что последний, лучший способ сохранить две базы данных одинаково (кроме данных, конечно ...)?

mysql,

11

Ответов: 7


17

Каждая среда должна иметь отдельную базу данных. Сценарий всех объектов базы данных (таблицы, представления, процедуры и т. Д.) И сохранение сценариев в исходном управлении. Сценарии применяются сначала к базе данных разработки, затем к экзамену (QA, UAT и т. Д.), А затем к производству. Применяя одни и те же сценарии к каждой базе данных, все они должны быть одинаковыми в конце.

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

Путем создания скриптов и сохранения их в исходном контроле структура базы данных может быть воссоздана в любой момент для любого заданного уровня сборки.


4

У вас обязательно должно быть два. Чтобы синхронизировать их, вы всегда должны создавать DDL для создания объектов базы данных. Относитесь к этим сценариям, как и код PHP, - держите их в управлении версиями. Каждый раз, когда вам нужно модифицировать тестовую базу данных, создайте сценарий для этого и проверьте его. Затем вы можете распространить эти изменения в производственной системе, как только будете готовы.


2

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


1

Смотрите также

Как вы можете изменить схему базы данных?

Это общий вопрос, и его спрашивали и много раз отвечали.

Томас Оуэнс: Репликация не используется для схем управления версиями - это для дублирования данных. Вы никогда не хотите копировать с dev на производство или наоборот.


0

Как только я развернул свою базу данных, любые изменения, внесенные в мои базы данных разработки, выполняются в SQL-скрипте (а не в инструменте), и скрипт сохраняется и пронумерован.

deploy.001.description.sql
deploy.002.description.sql
deploy.003.description.sql
... etc..

Затем я запускаю каждый из этих сценариев, когда я развертываю.

Затем я архивирую их в каталог, называемый чем-то вроде

deploy.YYMMDD

И начать все сначала.

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

Удачи

MySQL,
Похожие вопросы