Fix sql e migration

This commit is contained in:
Lorenzo Sanesi
2026-07-25 12:37:29 +02:00
parent 7cd0a1ff1b
commit a4cca3f2c1
17 changed files with 8 additions and 594 deletions
-240
View File
@@ -1,240 +0,0 @@
-- **************************************************** stato_attivita
create table stato_attivita
(
id varchar(2) not null primary key,
nome varchar(250) not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** tipo_categoria
create table tipo_categoria
(
id varchar(2) not null primary key,
nome varchar(250) not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** tipo_paragrafo
create table tipo_paragrafo
(
id varchar(10) not null primary key,
nome varchar(250) not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** attivita
create table attivita
(
id int not null primary key auto_increment,
nome varchar(250) not null,
autore varchar(250) not null,
padre int null,
stato varchar(2) not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
constraint fk_attivita_attivita foreign key (padre) references attivita (id),
constraint fk_attivita_stato_attivita foreign key (stato) references stato_attivita (id)
);
create index fk_attivita_attivita_idx on attivita (padre);
create index fk_attivita_stato_attivita_idx on attivita (stato);
-- **************************************************** branca
create table branca
(
id int not null primary key auto_increment,
nome varchar(250) not null,
inizio_eta int null,
fine_eta int null,
colore varchar(10) null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** branca_attivita
create table branca_attivita
(
attivita_id int not null,
branca_id int not null,
cancellato tinyint not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
primary key (attivita_id, branca_id),
constraint fk_branca_attivita_attivita foreign key (attivita_id) references attivita (id),
constraint fk_branca_attivita_branca foreign key (branca_id) references branca (id)
);
create index fk_branca_attivita_attivita_idx on branca_attivita (attivita_id);
create index fk_branca_attivita_branca_idx on branca_attivita (branca_id);
-- **************************************************** periodo_anno
create table periodo_anno
(
id int not null primary key auto_increment,
nome varchar(250) not null,
inizio_mese int null,
fine_mese int null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** periodo_anno_attivita
create table periodo_anno_attivita
(
attivita_id int not null,
periodo_anno_id int not null,
cancellato tinyint not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
primary key (attivita_id, periodo_anno_id),
constraint fk_periodo_anno_attivita_attivita foreign key (attivita_id) references attivita (id),
constraint fk_periodo_anno_attivita_periodo_anno foreign key (periodo_anno_id) references periodo_anno (id)
);
create index fk_periodo_anno_attivita_attivita_idx on periodo_anno_attivita (attivita_id);
create index fkperiodo_anno_attivita_periodo_anno_idx on periodo_anno_attivita (periodo_anno_id);
-- **************************************************** paragrafo
create table paragrafo
(
id int not null primary key auto_increment,
attivita_id int not null,
corpo varchar(500) not null,
autore varchar(250) not null,
tipo varchar(10) not null,
ordine int not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
constraint fk_paragrafo_tipo_paragrafo foreign key (tipo) references tipo_paragrafo (id),
constraint fk_paragrafo_attivita foreign key (attivita_id) references attivita (id)
);
create index fk_paragrafo_tipo_paragrafo_idx on paragrafo (tipo);
-- **************************************************** categoria
create table categoria
(
id int not null primary key auto_increment,
nome varchar(250) not null,
padre int null,
tipo varchar(2) not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
constraint fk_categoria_categoria foreign key (padre) references categoria (id),
constraint fk_categoria_tipo_categoria foreign key (tipo) references tipo_categoria (id)
);
create index fk_categoria_categoria_idx on categoria (padre);
create index fk_categoria_tipo_categoria_idx on categoria (tipo);
-- **************************************************** categoria_attivita
create table categoria_attivita
(
attivita_id int not null,
categoria_id int not null,
cancellato tinyint not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
primary key (attivita_id, categoria_id),
constraint fk_categoria_attivita_attivita foreign key (attivita_id) references attivita (id),
constraint fk_categoria_attivita_categoria foreign key (categoria_id) references categoria (id)
);
create index fk_categoria_attivita_attivita_idx on categoria_attivita (attivita_id);
create index fk_categoria_attivita_categoria_idx on categoria_attivita (categoria_id);
-- **************************************************** materiale
create table materiale
(
id int not null primary key auto_increment,
nome varchar(250) not null,
proprieta json,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** materiale_attivita
create table materiale_attivita
(
attivita_id int not null,
materiale_id int not null,
proprieta json null,
cancellato tinyint not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
primary key (attivita_id, materiale_id),
constraint fk_materiale_attivita_attivita foreign key (attivita_id) references attivita (id),
constraint fk_materiale_attivita_materiale foreign key (materiale_id) references materiale (id)
);
create index fk_materiale_attivita_attivita_idx on materiale_attivita (attivita_id);
create index fk_materiale_attivita_materiale_idx on materiale_attivita (materiale_id);
-- **************************************************** categoria_materiale
create table categoria_materiale
(
materiale_id int not null,
categoria_id int not null,
cancellato tinyint not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
primary key (materiale_id, categoria_id),
constraint fk_categoria_materiale_categoria foreign key (categoria_id) references categoria (id),
constraint fk_categoria_materiale_materiale foreign key (materiale_id) references materiale (id)
);
create index fk_categoria_materiale_categoria_idx on categoria_materiale (categoria_id);
create index fk_categoria_materiale_materiale_idx on categoria_materiale (materiale_id);
@@ -1,3 +0,0 @@
INSERT INTO scouthub.stato_attivita (id, nome, data_creazione, data_modifica, utente_modifica) VALUES ('PU', 'Pubblicato', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.stato_attivita (id, nome, data_creazione, data_modifica, utente_modifica) VALUES ('BO', 'Bozza', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.stato_attivita (id, nome, data_creazione, data_modifica, utente_modifica) VALUES ('PR', 'Privato', sysdate(), sysdate(), 'MANUALE');
@@ -1,2 +0,0 @@
INSERT INTO scouthub.tipo_categoria (id, nome, data_creazione, data_modifica, utente_modifica) VALUES ('A', 'Attività', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.tipo_categoria (id, nome, data_creazione, data_modifica, utente_modifica) VALUES ('M', 'Materiale', sysdate(), sysdate(), 'MANUALE');
@@ -1,2 +0,0 @@
INSERT INTO scouthub.tipo_paragrafo (id, nome, data_creazione, data_modifica, utente_modifica) VALUES ('TITOLO', 'Titolo attività', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.tipo_paragrafo (id, nome, data_creazione, data_modifica, utente_modifica) VALUES ('PARAGRAFO', 'Paragrafo attività', sysdate(), sysdate(), 'MANUALE');
@@ -1,4 +0,0 @@
INSERT INTO scouthub.branca (id, nome, inizio_eta, fine_eta, colore, data_creazione, data_modifica, utente_modifica) VALUES (1, 'L/C', 8, 10, '#FDD835', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.branca (id, nome, inizio_eta, fine_eta, colore, data_creazione, data_modifica, utente_modifica) VALUES (2, 'E/G', 11, 16, '#43A047', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.branca (id, nome, inizio_eta, fine_eta, colore, data_creazione, data_modifica, utente_modifica) VALUES (3, 'R/S', 17, 21, '#E53935', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.branca (id, nome, inizio_eta, fine_eta, colore, data_creazione, data_modifica, utente_modifica) VALUES (4, 'Co.Ca.', 22, 99, '#8E24AA', sysdate(), sysdate(), 'MANUALE');
@@ -1,3 +0,0 @@
INSERT INTO scouthub.periodo_anno (id, nome, inizio_mese, fine_mese, data_creazione, data_modifica, utente_modifica) VALUES (1, 'promessa', 1, 3, sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.periodo_anno (id, nome, inizio_mese, fine_mese, data_creazione, data_modifica, utente_modifica) VALUES (2, 'campo estivo', 6, 9, sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.periodo_anno (id, nome, inizio_mese, fine_mese, data_creazione, data_modifica, utente_modifica) VALUES (3, 'campo invernale', 12, 1, sysdate(), sysdate(), 'MANUALE');
@@ -1,9 +0,0 @@
INSERT INTO scouthub.categoria (id, nome, padre, tipo, data_creazione, data_modifica, utente_modifica) VALUES (1, 'attività', null, 'A', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.categoria (id, nome, padre, tipo, data_creazione, data_modifica, utente_modifica) VALUES (2, 'gioco', null, 'A', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.categoria (id, nome, padre, tipo, data_creazione, data_modifica, utente_modifica) VALUES (3, 'danza', null, 'A', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.categoria (id, nome, padre, tipo, data_creazione, data_modifica, utente_modifica) VALUES (4, 'gioco d''acqua', 2, 'A', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.categoria (id, nome, padre, tipo, data_creazione, data_modifica, utente_modifica) VALUES (5, 'gioco notturno', 2, 'A', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.categoria (id, nome, padre, tipo, data_creazione, data_modifica, utente_modifica) VALUES (6, 'grande gioco', 2, 'A', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.categoria (id, nome, padre, tipo, data_creazione, data_modifica, utente_modifica) VALUES (7, 'torneo', 2, 'A', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.categoria (id, nome, padre, tipo, data_creazione, data_modifica, utente_modifica) VALUES (8, 'olimpiadi', 2, 'A', sysdate(), sysdate(), 'MANUALE');
INSERT INTO scouthub.categoria (id, nome, padre, tipo, data_creazione, data_modifica, utente_modifica) VALUES (9, 'gioco giungla', 2, 'A', sysdate(), sysdate(), 'MANUALE');
Binary file not shown.
@@ -1,223 +0,0 @@
-- CreateTable
CREATE TABLE "stato_attivita" (
"id" VARCHAR(2) NOT NULL,
"nome" TEXT NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "stato_attivita_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "tipo_categoria" (
"id" TEXT NOT NULL,
"nome" TEXT NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "tipo_categoria_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "tipo_paragrafo" (
"id" TEXT NOT NULL,
"nome" TEXT NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "tipo_paragrafo_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "attivita" (
"id" SERIAL NOT NULL,
"nome" TEXT NOT NULL,
"autore" TEXT NOT NULL,
"padre" INTEGER,
"stato" TEXT NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "attivita_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "branca" (
"id" SERIAL NOT NULL,
"nome" TEXT NOT NULL,
"inizio_eta" INTEGER,
"fine_eta" INTEGER,
"colore" VARCHAR(10),
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "branca_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "branca_attivita" (
"attivita_id" INTEGER NOT NULL,
"branca_id" INTEGER NOT NULL,
"cancellato" BOOLEAN NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "branca_attivita_pkey" PRIMARY KEY ("attivita_id","branca_id")
);
-- CreateTable
CREATE TABLE "periodo_anno" (
"id" SERIAL NOT NULL,
"nome" TEXT NOT NULL,
"inizio_mese" INTEGER,
"fine_mese" INTEGER,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "periodo_anno_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "periodo_anno_attivita" (
"attivita_id" INTEGER NOT NULL,
"periodo_anno_id" INTEGER NOT NULL,
"cancellato" BOOLEAN NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "periodo_anno_attivita_pkey" PRIMARY KEY ("attivita_id","periodo_anno_id")
);
-- CreateTable
CREATE TABLE "paragrafo" (
"id" SERIAL NOT NULL,
"attivita_id" INTEGER NOT NULL,
"corpo" VARCHAR(500) NOT NULL,
"autore" TEXT NOT NULL,
"tipo" TEXT NOT NULL,
"ordine" INTEGER NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "paragrafo_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "categoria" (
"id" SERIAL NOT NULL,
"nome" TEXT NOT NULL,
"padre" INTEGER,
"tipo" TEXT NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "categoria_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "categoria_attivita" (
"attivita_id" INTEGER NOT NULL,
"categoria_id" INTEGER NOT NULL,
"cancellato" BOOLEAN NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "categoria_attivita_pkey" PRIMARY KEY ("attivita_id","categoria_id")
);
-- CreateTable
CREATE TABLE "materiale" (
"id" SERIAL NOT NULL,
"nome" TEXT NOT NULL,
"proprieta" JSONB,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "materiale_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "materiale_attivita" (
"attivita_id" INTEGER NOT NULL,
"materiale_id" INTEGER NOT NULL,
"proprieta" JSONB,
"cancellato" BOOLEAN NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "materiale_attivita_pkey" PRIMARY KEY ("attivita_id","materiale_id")
);
-- CreateTable
CREATE TABLE "categoria_materiale" (
"materiale_id" INTEGER NOT NULL,
"categoria_id" INTEGER NOT NULL,
"cancellato" BOOLEAN NOT NULL,
"data_creazione" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"data_modifica" TIMESTAMP(3) NOT NULL,
"utente_modifica" TEXT NOT NULL,
CONSTRAINT "categoria_materiale_pkey" PRIMARY KEY ("materiale_id","categoria_id")
);
-- AddForeignKey
ALTER TABLE "attivita" ADD CONSTRAINT "attivita_padre_fkey" FOREIGN KEY ("padre") REFERENCES "attivita"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "attivita" ADD CONSTRAINT "attivita_stato_fkey" FOREIGN KEY ("stato") REFERENCES "stato_attivita"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "branca_attivita" ADD CONSTRAINT "branca_attivita_attivita_id_fkey" FOREIGN KEY ("attivita_id") REFERENCES "attivita"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "branca_attivita" ADD CONSTRAINT "branca_attivita_branca_id_fkey" FOREIGN KEY ("branca_id") REFERENCES "branca"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "periodo_anno_attivita" ADD CONSTRAINT "periodo_anno_attivita_attivita_id_fkey" FOREIGN KEY ("attivita_id") REFERENCES "attivita"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "periodo_anno_attivita" ADD CONSTRAINT "periodo_anno_attivita_periodo_anno_id_fkey" FOREIGN KEY ("periodo_anno_id") REFERENCES "periodo_anno"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "paragrafo" ADD CONSTRAINT "paragrafo_attivita_id_fkey" FOREIGN KEY ("attivita_id") REFERENCES "attivita"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "paragrafo" ADD CONSTRAINT "paragrafo_tipo_fkey" FOREIGN KEY ("tipo") REFERENCES "tipo_paragrafo"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "categoria" ADD CONSTRAINT "categoria_padre_fkey" FOREIGN KEY ("padre") REFERENCES "categoria"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "categoria" ADD CONSTRAINT "categoria_tipo_fkey" FOREIGN KEY ("tipo") REFERENCES "tipo_categoria"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "categoria_attivita" ADD CONSTRAINT "categoria_attivita_attivita_id_fkey" FOREIGN KEY ("attivita_id") REFERENCES "attivita"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "categoria_attivita" ADD CONSTRAINT "categoria_attivita_categoria_id_fkey" FOREIGN KEY ("categoria_id") REFERENCES "categoria"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "materiale_attivita" ADD CONSTRAINT "materiale_attivita_attivita_id_fkey" FOREIGN KEY ("attivita_id") REFERENCES "attivita"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "materiale_attivita" ADD CONSTRAINT "materiale_attivita_materiale_id_fkey" FOREIGN KEY ("materiale_id") REFERENCES "materiale"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "categoria_materiale" ADD CONSTRAINT "categoria_materiale_materiale_id_fkey" FOREIGN KEY ("materiale_id") REFERENCES "materiale"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "categoria_materiale" ADD CONSTRAINT "categoria_materiale_categoria_id_fkey" FOREIGN KEY ("categoria_id") REFERENCES "categoria"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -1,7 +0,0 @@
-- AlterTable
-- Le righe esistenti (dati di sviluppo/seed, precedenti all'introduzione
-- dell'autenticazione Keycloak) non hanno un autore reale: valorizzate con
-- stringa vuota, poi il default viene rimosso perche' da qui in avanti
-- autoreId e' sempre valorizzato dal token (sub) al momento della creazione.
ALTER TABLE "attivita" ADD COLUMN "autore_id" TEXT NOT NULL DEFAULT '';
ALTER TABLE "attivita" ALTER COLUMN "autore_id" DROP DEFAULT;