Мне нужно выполнить миграцию данных вместе с миграцией схемы. Я использую функциии postUp()
для извлечения данных, применения миграции схемы и обновления новых столбцов с помощью некоторых старых данных.
Поскольку я собираюсь коснуться хотя бы 6000 записей, я хотел использовать необработанные запросы. У меня нет зависимости от ContainerAwareInterface. На моей местной копии я делаю что-то вроде:
$SQL = "SELECT column FROM table;";
$statement = $this->connection->prepare($SQL);
$statement->execute();
$results = $statement->fetchAll();
//continue with $results etc
Это работает нормально. Когда я пытаюсь запустить эту миграцию на прод я получаю сообщение:
Migration 20161117165412 failed during Pre-Checks. Error SQLSTATE[42000]: Syntax error or access violation: 1142 SELECT command denied to user 'valid_username'@'valid_host' for table 'table'
Приложение имеет один определенный соединение/менеджер организация и сайт работает нормально. Я не могу понять, что здесь может повлиять? Некоторая конфигурация, я уверен, но у меня кончились идеи.
Я проверил привилегии, установленные в mysql.user, и все привилегии для «valid_username» установлены на N, что странно, потому что я ожидаю, что приложение также потерпит неудачу при привилегиях чтения.
Ключи должны быть установлены в '$ this-> connection' - откуда оно взялось? –
Это проект symfony, обычно учетные данные находятся в файле parameters.yml – stevenll
Я имел в виду объект подключения - вы сказали, что у вас нет зависимости от ContainerAwareInterface, так откуда он взялся? –