39 lines
1.5 KiB
SQL
39 lines
1.5 KiB
SQL
-- On créer la base de donnée si elle n'existe déjà aps
|
|
CREATE DATABASE IF NOT EXISTS portfolio
|
|
|
|
-- On créer un utilisateur avec un mot de passe fort qui est à changer après execution dus script (voir bitwarden)
|
|
CREATE USER 'srv_portfolio'@'localhost' IDENTIFIED BY 'mdp';
|
|
|
|
-- On met les droits au compte sur la base portfolio à l'utilisateur
|
|
GRANT ALL ON portfolio.* TO 'srv_portfolio'@'localhost';
|
|
|
|
-- On actualise les permissions
|
|
FLUSH PRIVILEGES;
|
|
|
|
-- Création de la table user : (Généré par Beekeeper Studio : équivalent à dbGate)
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
username VARCHAR(50) NOT NULL,
|
|
password VARCHAR(255) NOT NULL, -- Je laisse ici de la place pour prévoir un futur hashage et sallage
|
|
role ENUM('admin', 'user') NOT NULL DEFAULT 'user',
|
|
created_at DATETIME NULL DEFAULT NULL,
|
|
last_login DATETIME NULL DEFAULT NULL,
|
|
|
|
PRIMARY KEY (id),
|
|
UNIQUE INDEX idx_username (username)
|
|
);
|
|
|
|
-- Création de la table projects : (Généré par Beekeeper Studio)
|
|
CREATE TABLE IF NOT EXISTS projects (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
title VARCHAR(100) NOT NULL,
|
|
tags VARCHAR(255) NULL,
|
|
description TEXT NOT NULL,
|
|
image_url VARCHAR(255) NOT NULL, -- Stockage de l'image par URL (exemple : par CDN)
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
-- Compte de test
|
|
INSERT INTO users (username, password, role)
|
|
VALUES ('admin', 'admin', 'admin'); |