Eu acabei usando isso nas Migrations por julgar que não seria necessário garantir duas vezes que o valor fosse NOT NULL.
ALTER TABLE medicos ADD COLUMN telefone VARCHAR(20);
Nós fizemos a validação e garantimos no DTO que o valor seja um NOT NULL diretamente da aplicação, então tem a necessidade de reforçar isso nas migrations?
public record MedicoDTO(
@NotBlank String nome,
@NotBlank @Email String email,
@NotBlank @Pattern(regexp = "\\d{4,6}") String crm,
@NotNull String telefone,
@NotNull EspecialidadeEnum especialidade,
@NotNull @Valid EnderecoDTO endereco) {
}