la migracio crea i administra les taules a la base de dades de laravel
Les migrations es guarden dins de database/migrations.
Cada fitxer de migration té un nom estructurat seguint aquest format:
YYYY_MM_DD_HHMMSS_create_nom_taula_table.php
Per exemple:
2024_01_19_120000_create_posts_table.php
El prefix de data i hora assegura que les migrations s'executin en ordre cronològic.
Per crear una nova migration, pots executar aquesta comanda a la terminal:
php artisan make:migration create_nom_taula_table
Per exemple, si vols crear una taula posts:
php artisan make:migration create_posts_table
Això generarà un nou fitxer dins de database/migrations/.
Cada fitxer de migration conté dues funcions principals:
Exemple d'una migration per la taula posts:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('posts', function (Blueprint $table) {
$table->integer('id', true);
$table->string('title');
$table->integer('category_id')->nullable()->index('categoria_id');
$table->string('excerpt', 500)->nullable();
$table->text('content')->nullable();
$table->string('img')->nullable();
$table->string('url')->nullable();
$table->string('ins')->nullable();
$table->string('face')->nullable();
$table->string('youtube')->nullable();
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('posts');
}
};
Per aplicar totes les migrations pendents a la base de dades:
php artisan migrate
Si només vols executar una sola migration:
php artisan migrate --path=database/migrations/2024_01_19_120000_create_posts_table.php
Si has fet un canvi incorrecte o vols tornar enrere:
php artisan migrate:rollback
php artisan migrate:fresh
Si ja tens una taula creada i vols afegir una nova columna, has de crear una nova migració:
php artisan make:migration add_column_to_posts_table --table=posts
Això generarà un fitxer on podràs afegir la nova columna dins la funció up():
Schema::table('posts', function (Blueprint $table) {
$table->string('slug')->after('title')->unique();
});Per eliminar la columna en cas de rollback:
Schema::table('posts', function (Blueprint $table) {
$table->dropColumn('slug');
});Finalment, executa la migració:
php artisan migrate
Laravel permet definir relacions a les migrations. Exemple d'una relació de posts amb categories:
Schema::table('posts', function (Blueprint $table) {
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
});Aquest codi crea una clau forana que connecta posts amb categories.
✔ Sempre usa php artisan make:migration per generar migrations.
✔ Executa php artisan migrate abans de començar a treballar per assegurar que tens l'última versió de la base de dades.
✔ Usa rollback o fresh només en entorns de desenvolupament, no en producció.
✔ Si modifiques una taula, crea una nova migració en lloc d'editar una antiga (per evitar problemes en col·laboracions).
ComandaDescripcióphp artisan make:migration create_nom_taula_table | Crear una nova migration
php artisan migrate | Aplicar totes les migrations
php artisan migrate:rollback | Tornar enrere l'última migració
php artisan migrate:fresh | Esborrar i recrear totes les taules
php artisan make:migration add_column_to_table --table=nom_taula | Modificar una taula existent
Les migrations a Laravel són una eina molt potent per gestionar la base de dades com si fos codi. Permeten: ✔ Definir i modificar taules sense tocar la base de dades directament.
✔ Mantenir un historial de canvis i compartir-lo amb altres desenvolupadors.
✔ Assegurar consistència entre diferents entorns (desenvolupament, staging, producció).
Editor del blog
Aquest script en Python importa dades d'un fitxer CSV (com `compartit 3tr-2025 - VENDA.csv`) a la base de dades MySQL `autonomo_contabilidad`, utilitzant l'esquema de taules `wp_contabilidad_clientes`, `wp_contabilidad_empleados`, `wp_contabilidad_productos`, `wp_contabilidad_ventas` i `wp_contabilidad_detalles_venta`.
nstal·lant PHP i l'instal·lador Laravel Abans de crear la vostra primera aplicació Laravel, assegureu-vos que la vostra màquina local tingui PHP , Composer i l'instal·lador Laravel instal·lats. A més, hauríeu d'instal·lar Node i NPM o Bun perquè pugueu compilar els actius d'interfície de la vostra aplicació.
Una manera adequada de nomenar aquesta consulta PDO podria ser "ObtenirPàginesPerCategoriaIEtiqueta" o "LlistarPàginesFiltrades". Aquest nom reflecteix que la consulta selecciona posts associats a una categoria i etiqueta específica. També pot ser útil considerar la claredat de la consulta en el context de l'aplicació, per exemple:
El que no està tan definit és quina és la millor manera de connectar-se a MySQL fent servir PHP. A priori en destaquen dues:MySQLi, PDO
pagina /post/543 del projecte laravel12.test
pagina /post/317 del projecte larpreline.test