1
resposta

Erro ao executar migração

Running migrations:
  Applying recipes.0004_auto_20210830_0942...Traceback (most recent call last):
  File "/home/inet/PycharmProjects/djangoProject/venv/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.NotNullViolation: column "person_id" of relation "recipes_recipe" contains null values
1 resposta

Olá Guilherme, tudo bem com você?

Peço desculpas pela demora no retorno.

Gostaria de saber se o erro apresentado persiste, esse erro geralmente é apresentado durante a tentativa de realização de uma migração após a criação do aplicativo pessoa e não realizar a exclusão das receitas criadas antes da existência do aplicativo pessoa.

Recomendo que teste os seguintes passos antes de realizar a migração.

  • Inicie o servidor executando o código abaixo no terminal aberto no ambiente virtual do projeto.

      python manage.py runserver
  • Acesse o painel do administrador da aplicação, podendo acessá-lo pelo seguinte link, logue com o usuário e senha criado para o administrador.

  • Na página que será carregada clique em Modificar do campo Receitas, no canto esquerdo da tela.

  • Nesse momento será aberta a página que contém as receitas criadas, marque a caixa de seleção de todas as receitas já criadas.

  • Na caixa Ação que está acima da lista de receitas, selecione Remover receitas selecionadas e clique em ir.

  • Na próxima página, será perguntado se tem certeza que deseja continuar, clique no botão escrito Sim, tenho certeza, botão vermelho à esquerda da tela.

  • Após excluir as receitas podemos preparar e realizar as migrações primeiramente usando o seguinte comando para criar as migrações.

      python manage.py makemigrations
    
  • Será apresentado uma mensagem informando que está sendo feito a tentativa de adicionar novos campos que possuem algumas linhas, neste momento devemos escolher a opção de informar um valor padrão para essas linhas, digite 1 e pressione enter.

  • Para o valor padrão, iremos informar uma string vazia (' ') e pressionamos enter.

  • Nesse momento basta realizarmos a migração com o comando a seguir.

      python manage.py migrate
    

Os passos listados acima podem ser acompanhados na seguinte aula, do minuto 2:00 ao minuto 6:00.

Peço que teste o proposto acima, caso o erro persista, encontro-me à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!