terça-feira, 15 de abril de 2014

Ajustando o datetime no Laravel 4 para o SQL Server

Olá galera,

No último post, mencionei sobre o problema da migration com SQL Server e Laravel 4. Agora ao tentar acessar uma página que contém datas com timestamp (Ex: created_at e updated_at), ocorreu o erro da imagem abaixo.

.

Para corrigir o erro será necessário fazer alguns ajustes no framework. Mais uma vez, recomendo que qualquer alteração seja devidamente comentada e documentada para evitar problemas futuros.

Pesquise pelos métodos typeDateTime e typeTimestamp no arquivo /vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php e altere o return 'datetime'; para return 'datetime2';.

Para finalizar, pesquise pelo método getDateFormat no arquivo /vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php e altere o return 'Y-m-d H:i:s.000'; para return 'Y-m-d H:i:s.0000000';.

Para funcionar será necessário recriar o banco de dados, executar as migrations e os seeds caso existam. A outra solução é ajustar os campos manualmente via SQL.

Espero ter ajudado as pessoas que tiveram o mesmo problema.

Um abraço e até próxima.

Nenhum comentário:

Postar um comentário