Les migracions de bases de dades són una part essencial del desenvolupament d'aplicacions modernes. Permeten gestionar els canvis en l'esquema de la base de dades de manera controlada i repetible. En aquest tema, aprendrem com utilitzar eines de migració en Go per gestionar aquests canvis.
Objectius d'Aprenentatge
Al final d'aquest tema, hauràs après:
- Què són les migracions de bases de dades i per què són importants.
- Com utilitzar una eina de migració popular en Go.
- Com crear, aplicar i revertir migracions.
Què són les Migracions de Bases de Dades?
Les migracions de bases de dades són scripts que modifiquen l'esquema de la base de dades. Aquestes modificacions poden incloure la creació de taules, l'alteració de columnes, l'eliminació de taules, etc. Les migracions permeten:
- Mantenir l'esquema de la base de dades sincronitzat amb el codi de l'aplicació.
- Facilitar la col·laboració entre desenvolupadors.
- Assegurar que els canvis en l'esquema es poden aplicar de manera controlada i repetible.
Eina de Migració: golang-migrate
Una de les eines més populars per gestionar migracions en Go és golang-migrate
. Aquesta eina permet crear, aplicar i revertir migracions de manera senzilla.
Instal·lació de golang-migrate
Per instal·lar golang-migrate
, pots utilitzar go get
:
Creació d'una Migració
Per crear una nova migració, utilitza la següent comanda:
Aquesta comanda crearà dos fitxers SQL a la carpeta db/migrations
:
000001_create_users_table.up.sql
000001_create_users_table.down.sql
Exemple de Migració
Suposem que volem crear una taula d'usuaris. El fitxer 000001_create_users_table.up.sql
podria contenir:
CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP );
El fitxer 000001_create_users_table.down.sql
podria contenir:
Aplicació de Migracions
Per aplicar les migracions, utilitza la següent comanda:
migrate -path db/migrations -database postgres://user:password@localhost:5432/mydb?sslmode=disable up
Revertir Migracions
Per revertir l'última migració aplicada, utilitza la següent comanda:
migrate -path db/migrations -database postgres://user:password@localhost:5432/mydb?sslmode=disable down 1
Exercici Pràctic
Exercici 1: Creació d'una Taula de Productes
- Crea una nova migració per a una taula de productes.
- Defineix l'esquema de la taula amb les següents columnes:
id
,name
,description
,price
,created_at
. - Aplica la migració a la teva base de dades local.
- Reverteix la migració.
Solució
- Crear la migració:
- Definir l'esquema de la taula en
000002_create_products_table.up.sql
:
CREATE TABLE products ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, description TEXT, price NUMERIC(10, 2) NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP );
- Definir la reversió en
000002_create_products_table.down.sql
:
- Aplicar la migració:
migrate -path db/migrations -database postgres://user:password@localhost:5432/mydb?sslmode=disable up
- Revertir la migració:
migrate -path db/migrations -database postgres://user:password@localhost:5432/mydb?sslmode=disable down 1
Resum
En aquest tema, hem après què són les migracions de bases de dades i com utilitzar l'eina golang-migrate
per gestionar-les en Go. Hem vist com crear, aplicar i revertir migracions amb exemples pràctics. Les migracions són una eina poderosa per mantenir l'esquema de la base de dades sincronitzat amb el codi de l'aplicació i facilitar la col·laboració entre desenvolupadors.
Curs de Programació en Go
Mòdul 1: Introducció a Go
- Introducció a Go
- Configuració de l'Entorn Go
- El Teu Primer Programa en Go
- Sintaxi i Estructura Bàsiques
Mòdul 2: Conceptes Bàsics
Mòdul 3: Estructures de Dades Avançades
Mòdul 4: Gestió d'Errors
Mòdul 5: Concurrència
Mòdul 6: Temes Avançats
Mòdul 7: Desenvolupament Web amb Go
Mòdul 8: Treballant amb Bases de Dades
Mòdul 9: Desplegament i Manteniment
- Construcció i Desplegament d'Aplicacions Go
- Registre
- Monitorització i Optimització del Rendiment
- Millors Pràctiques de Seguretat