Данные откатной доктрины: загрузка при неудачной вставке из осветителей - PullRequest
3 голосов
/ 04 апреля 2011

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

Есть ли способ сделать процесс DATA: LOAD ATOMIC, то есть GO или NO-GO для всех данных, чтобы данные никогда не вставлялись наполовину.

Ответы [ 2 ]

0 голосов
/ 16 сентября 2011

Надеюсь, это должно сработать:

Напишите задачу, которая выполняет те же действия, что и данные: загрузите, но оберните ее:

$databaseManager = new sfDatabaseManager($this->configuration);
$conn = $sf_database_managaer->getDatabase('doctrine')->getDoctrineConnection();
try{

...............


}catch(Exception $e){ //maybe you can be more specific about the exception thrown
    echo $e->getMessage();
    $conn->rollback();
}
0 голосов
/ 17 июля 2011

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

Один из вариантов - разбить ваши приборы на несколько файлов и загрузить их по отдельности. Это также то, что я сделал бы, если бы вам сначала нужно было загружать большие объемы данных через скрипт или из CSV (то есть что-то большее, чем несколько приборов). Таким образом, вам не нужно повторять его, если у вас была проблема с приспособлениями где-то еще.

...