Propel-load-data вызывает ошибку

Я пытаюсь загрузить данные, но myproject выдает ошибку в CLI и запускает процесс индексирования.

Я пытался:

  • Перестройка схемы и модели
  • Очистка базы данных и повторный запуск
  • Очистка кеша
  • Проверка файла YML и попытка создания более простых дампов данных

Моя платформа - Symfony 1.0 на Windows

У некоторых также, кажется, была та же самая проблема в прошлом.

C:\web\my_project>symfony propel-load-data backend   
>> propel    load data from "C:\web\my_project\data\fixtures"

PHP Warning:  session_start(): Cannot send session cookie - headers already sent by (output started at C:\php\PEAR\symfony\vendor\pake\pakeFunction.php:366) in C:\php\PEAR\symfony\storage\sfSessionStorage.class.php on line 77

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\php\PEAR\symfony\vendor\pake\pakeFunction.php:366) in C:\php\PEAR\symfony\storage\sfSessionStorage.class.php on line 77

PHP Warning:  session_start(): Cannot send session cache limiter - headers already sent (output started at C:\php\PEAR\symfony\vendor\pake\pakeFunction.php:366) in C:\php\PEAR\symfony\storage\sfSessionStorage.class.php on
line 77

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\php\PEAR\symfony\vendor\pake\pakeFunction.php:366) in C:\php\PEAR\symfony\storage\sfSessionStorage.class.php on line
77

3 ответа

Решение

Эта ошибка произошла из-за проблемы с одним из моих переопределенных методов сохранения в модели.

Причины ошибки propel-load-data сломать

Материал сеанса не должен запускаться для задачи CLI (логически, вы не делаете sfWebRequest при использовании CLI), поэтому что-то в вашем коде делает предположение. Я предполагаю, что вы пытаетесь сделать что-то с хранилищем сеанса или чем-то, что создает экземпляр sfContext из метода save() объекта - если вам нужно что-то подобное, всегда делайте это в своих действиях, а не в модели.

Просто для информации, в задаче Symfony 1.4 у меня были те же сообщения, и я решил переместить эти строки обратно в стандартный метод execute():

// the following 2 lines need absolutely to stay in execute() to prevent 
$configuration = ProjectConfiguration::getApplicationConfiguration(
$this->options['application'],
$this->options['env'],
false
);
sfContext::createInstance($configuration);

Я переместил их в другой метод раньше, хотя этот метод был вызван execute(), у меня все еще будут предупреждения. Спасибо Raise за отзыв.

Береги себя!

Другие вопросы по тегам