Olá, Natan. Tudo bem?
Entendo sua dúvida e é uma pergunta bem interessante. A opção "synchronize: true" no TypeORM realmente faz a sincronização do banco de dados com base nas entidades definidas no código. Ou seja, se a tabela não existir, ela será criada automaticamente.
No entanto, a razão pela qual o instrutor está ensinando a criar manualmente as tabelas através do pgAdmin é para que você entenda o processo de criação e manipulação de tabelas diretamente no banco de dados. Isso é muito útil para quando você precisar fazer alterações mais complexas ou resolver problemas que podem não ser possíveis apenas através do TypeORM.
Além disso, em um ambiente de produção, normalmente não se utiliza a opção "synchronize: true" por questões de segurança e controle. Em vez disso, utiliza-se migrations, que são como um controle de versão para o banco de dados. As migrations permitem que você controle as alterações na estrutura do banco de dados de uma maneira mais granular e segura.
Então, mesmo que o TypeORM possa facilitar a criação e atualização das tabelas, é importante entender como as coisas funcionam por trás dos panos. Isso te dará uma melhor compreensão e controle sobre o seu banco de dados.
Espero ter ajudado e bons estudos!