1
resposta

Erro ao criar migration

Prezados,

Não estou obtendo sucesso na criação da migration.

O que tenho de resposta ao executar o comando "php artisan migrate" é:

SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `episodios` add constraint `episodios_serie_id_foreign` foreign key (`serie_id`) references `series` (`id`))

SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint

Conteúdo da migration:

public function up()
    {
        Schema::create('episodios', function (Blueprint $table) {
            $table->tinyIncrements('id');
            $table->integer('temporada');
            $table->integer('numero');
            $table->boolean('assistido')->default(0);
            $table->integer('serie_id')->unsigned();
            $table->foreign('serie_id')->references('id')->on('series');
            $table->timestamps();
        });
1 resposta

Olá Rogério,

Testa essas opções:

  1. Verifica se serie_id e o id da tabela series são do mesmo tipo (integer e unsigned).

  2. Verifica a ordem de suas migrations, a tabela series deve ser criada antes da tabela episodios

  3. Verifica se o seu banco está utilizando o MyISAM ou o InnoDB como engine.

Se for o primeiro caso você pode corrigir deixando as duas colunas com o mesmo tipo.

Se não for a primeira opção e a tabela estiver configurada com a engine MyISAM, isso pode ser a causa desse erro, pois nesse caso não é suportado relação de chaves estrangeiras.

Você pode verificar a engine utilizada na aba "Operations" do phpMyAdmin, na opção "Storage Engine", ou executando os dois comandos abaixo no mysql:

use NOME_DO_SEU_BANCO;

SHOW TABLE STATUS WHERE name='NOME_DE_SUA_TABELA';

Olhe o valor da coluna Engine. Se o valor estiver como MyISAM avisa aqui que a gente te diz como mudar para InnoDB.