我需要在模式遷移的同時進行數據遷移。我使用preUp()
和postUp()
函數獲取數據,應用模式遷移,然後使用一些舊數據更新新列。
由於我要觸摸至少6000條記錄,我想使用原始查詢。我沒有從ContainerAwareInterface的任何依賴。在我的本地副本上我做的是這樣的:
$SQL = "SELECT column FROM table;";
$statement = $this->connection->prepare($SQL);
$statement->execute();
$results = $statement->fetchAll();
//continue with $results etc
這是運行良好。當我嘗試運行PROD這種遷移我得到的消息:
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'中設置credentals - 它來自哪裏? –
這是一個symfony項目,通常憑證在parameters.yml文件中 – stevenll
我的意思是連接對象 - 你說你沒有依賴於ContainerAwareInterface,所以它來自哪裏? –