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 за отзыв.
Береги себя!