Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

588
Views
SQLSTATE[HY000]: Error general: 1005 No se puede crear la tabla `Projectname`.`users` (errno: 150 "La restricción de clave externa está formada incorrectamente")
Schema::create('projects', function (Blueprint $table) { $table->id(); $table->string('name'); $table->timestamps(); }); Schema::create('users', function (Blueprint $table) { $table->id(); $table->foreignId('project_id')->constrained(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); Schema::create('tasks', function (Blueprint $table) { $table->id(); $table->foreignId('user_id')->constrained(); $table->string('name'); $table->timestamps(); });

Cuando ejecuto la php artisan migrate , solo se crea la tabla de usuarios y luego el proceso de migración se detiene...

SQLSTATE[HY000]: Error general: 1005 No se puede crear la tabla Projectname . users (errno: 150 "La restricción de clave externa está formada incorrectamente") (SQL: alterar la tabla users agregar restricción users_project_id_foreign clave externa ( project_id ) hace referencia projects ( id ))

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Busque su directorio de migración , verá todos sus archivos de migración, como 2014_10_12_000000_create_users_table

Está recibiendo este error porque su project_create_table debe migrarse antes que el archivo create_users_table .

De forma predeterminada, laravel hace que cada nombre de archivo de migración tenga un formato de date_time , como 2014_10_12_000000_table_names.php , de modo que todos los archivos se pueden migrar en serie.
Así que cambie su nombre de archivo create_users_table con una date_time , para que pueda migrar después de projects_create_table , como:

 2020_01_01_000000_create_projects_table.php 2020_01_01_000001_create_users_table.php

Ahora, si ejecuta php artisan migrate , al principio se creará la tabla de projects , luego la tabla de users .

over 4 years ago · Santiago Trujillo Report

0

Usó constrained() que tiende a encontrar el project de tabla o user No los projects o users . En ese caso, debe especificar el nombre de la tabla en constrained() .

 Schema::create('projects', function (Blueprint $table) { $table->id(); $table->string('name'); $table->timestamps(); }); Schema::create('users', function (Blueprint $table) { $table->id(); $table->foreignId('project_id')->constrained('projects'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); Schema::create('tasks', function (Blueprint $table) { $table->id(); $table->foreignId('user_id')->constrained('users'); $table->string('name'); $table->timestamps(); });

Puedes estudiar más desdeaquí

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!