Получение dbdeploy задачи Phing автоматически откатывать на ошибке дельты

Я использую dbdeploy задачу Phing управлять моей схемой базы данных. Это хорошо работает, пока нет никаких ошибок в запросах моих файлов дельты.

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

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

Примечание: Я не являюсь настолько опытным с Phing, поэтому если это включает запись пользовательской задачи, любой пример кода или URL с дополнительной информацией высоко ценятся. Спасибо

6
задан Gordon 19 March 2010 в 14:10
поделиться

3 ответа

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

Вы не говорите, какую базу данных вы используете, но мне было бы интересно, все ли изменения схемы будут поддерживаться в транзакциях. Большинство баз данных SQL (oracle, db2, sql server) не делают этого во всех случаях по действительно веским причинам. Изменения трансацитональной схемы ДЕЙСТВИТЕЛЬНО сложны и ДЕЙСТВИТЕЛЬНО требуют больших затрат ресурсов.

-1
ответ дан 10 December 2019 в 00:36
поделиться

Почему бы не написать серию дельт отмены и не добавить задачу phing, которая запускается при сбое другой задачи?

1
ответ дан 10 December 2019 в 00:36
поделиться

вам действительно стоит взглянуть на capistrano. TomTom: вы что-то упускаете: резервная копия перед изменением схемы, конечно, должна быть сделана - но что делать с НОВЫМИ данными, которые были вставлены, пока вы думали, что все в порядке? Я не утверждаю, что для этой проблемы есть хороший инструмент, но проблема существует в реальной жизни.

1
ответ дан 10 December 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: