Para crear migraciones en Laravel, usa el comando php artisan make:migration seguido del nombre de la migración. Por ejemplo:
php artisan make:migration create_categories_table php artisan make:migration create_etiquetas_table php artisan make:migration create_posts_table php artisan make:migration create_post_etiquetas_table php artisan make:migration create_users_table
Cada uno de estos comandos generará un archivo de migración en el directorio database/migrations. Luego, debes editar estos archivos para definir la estructura de las tablas.
Aquí está el contenido que debes colocar en cada archivo de migración:
create_categories_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateCategoriesTable extends Migration
{
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->id(); // Autoincremental primary key
$table->string('name');
$table->text('svg');
$table->timestamps(); // Automatically creates created_at and updated_at columns
});
}
public function down()
{
Schema::dropIfExists('categories');
}
}create_etiquetas_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEtiquetasTable extends Migration
{
public function up()
{
Schema::create('etiquetas', function (Blueprint $table) {
$table->id(); // Autoincremental primary key
$table->string('name');
$table->text('svg');
$table->timestamps(); // Automatically creates created_at and updated_at columns
});
}
public function down()
{
Schema::dropIfExists('etiquetas');
}
}create_posts_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id(); // Autoincremental primary key
$table->string('title');
$table->foreignId('category_id')->nullable()->constrained('categories')->onDelete('set null');
$table->string('excerpt', 500)->nullable();
$table->text('content')->nullable();
$table->string('img')->default('default_image.png');
$table->string('url')->nullable();
$table->string('ins')->nullable();
$table->string('face')->nullable();
$table->string('youtube')->nullable();
$table->timestamps(); // Automatically creates created_at and updated_at columns
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}create_post_etiquetas_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePostEtiquetasTable extends Migration
{
public function up()
{
Schema::create('post_etiquetas', function (Blueprint $table) {
$table->id(); // Autoincremental primary key
$table->foreignId('post_id')->constrained('posts')->onDelete('cascade');
$table->foreignId('etiqueta_id')->constrained('etiquetas')->onDelete('cascade');
$table->timestamps(); // Automatically creates created_at and updated_at columns
});
}
public function down()
{
Schema::dropIfExists('post_etiquetas');
}
}create_users_table.php
El archivo de migración para la tabla users es generalmente generado por Laravel cuando se crea una nueva aplicación y se ejecuta php artisan migrate. Aquí está cómo debería verse si necesitas ajustar algo:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id(); // Autoincremental primary key
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->text('two_factor_secret')->nullable();
$table->text('two_factor_recovery_codes')->nullable();
$table->string('remember_token')->nullable();
$table->foreignId('current_team_id')->nullable();
$table->string('profile_photo_path', 2048)->nullable();
$table->timestamps(); // Automatically creates created_at and updated_at columns
});
}
public function down()
{
Schema::dropIfExists('users');
}
}Una vez que hayas definido todas las migraciones, ejecuta el siguiente comando para aplicar las migraciones y crear las tablas en tu base de datos:
php artisan migrate
Estas migraciones permiten a Laravel gestionar las tablas de tu base de datos de manera estructurada y automática.