我在舊項目中使用了symfony(2.6.9)和原則。當我開始在這裏工作時,我意識到一些遷移被執行,然後刪除了歷史記錄。所以我不能複製當前的生產數據庫狀態。因此,從生產中創建數據庫備份並將其安裝在本地環境中。然後當我嘗試用symfony.I執行新移民得到一個錯誤,當我執行這個查詢:Doctrine Migrations中的錯誤
'ALTER TABLE video_en ADD CONSTRAINT FK_65A1A65C1B53C8FE FOREIGN KEY (portuguese_id) REFERENCES video_pt (id) ON DELETE SET NULL'
我得到這個錯誤:
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '0000-00-00 00:00:00' for column 'publication_date' at row 1
我認爲這個問題是有關數據庫中的舊數據。所以,我想在生產中執行遷移並保留所有數據。
有用的是,如果我在一個乾淨的環境中執行遷移。它正在工作(但正如我在第一段中寫的,在生產中執行了一些不在代碼中的遷移)。
我設置爲正確的堅持,如果我執行你的建議的查詢,我的意思是,我得到同樣的錯誤,因爲我不能也使用這個日期「00:00:00」來比較你的想法,所以我決定執行這個查詢: UPDATE video_en SET publication_date =「1970-01-01」WHERE publication_date <「1970 -01-01 現在我可以執行遷移了。 –
更新了答案以反映您的發現。應該能夠將時間設置爲0,但是您可以關於where子句的正確答案。這永遠不會像我所擁有的那樣工作。謝謝你,快樂的編碼! –