diff --git a/docker/init/mysql/01-schema.sql b/docker/init/mysql/01-schema.sql new file mode 100644 index 0000000..cf087fc --- /dev/null +++ b/docker/init/mysql/01-schema.sql @@ -0,0 +1,11 @@ +CREATE TABLE IF NOT EXISTS cards ( + id VARCHAR(36) NOT NULL, + question TEXT NOT NULL, + response TEXT NOT NULL, + theme VARCHAR(50) NOT NULL, + tags JSON, + createdAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + updatedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (id), + INDEX idx_cards_theme (theme) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci; \ No newline at end of file diff --git a/docker/init/mysql/02-seed.sql b/docker/init/mysql/02-seed.sql new file mode 100644 index 0000000..ff420d3 --- /dev/null +++ b/docker/init/mysql/02-seed.sql @@ -0,0 +1,11 @@ +INSERT INTO cards (id, question, response, theme, tags, createdAt, updatedAt) VALUES +('10000000-0000-4000-8000-000000000001', 'Qu''est-ce qu''une closure en JavaScript ?', 'Une fonction qui conserve l''accès à la portée de sa définition.', 'javascript', JSON_ARRAY('scope', 'fonction'), NOW(), NOW()), +('10000000-0000-4000-8000-000000000002', 'Que retourne typeof null ?', 'La chaîne "object", héritage historique du langage.', 'javascript', JSON_ARRAY('types'), NOW(), NOW()), +('10000000-0000-4000-8000-000000000003', 'Qu''est-ce qu''une interface TypeScript ?', 'Un contrat décrivant la forme d''un objet.', 'typescript', JSON_ARRAY('types'), NOW(), NOW()), +('10000000-0000-4000-8000-000000000004', 'À quoi sert le type unknown ?', 'Il représente une valeur inconnue qui exige un contrôle de type avant usage.', 'typescript', JSON_ARRAY('types'), NOW(), NOW()), +('10000000-0000-4000-8000-000000000005', 'Qu''est-ce qu''un hook React ?', 'Une fonction qui permet de brancher l''état et le cycle de vie dans un composant fonctionnel.', 'react', JSON_ARRAY('hooks', 'composants'), NOW(), NOW()), +('10000000-0000-4000-8000-000000000006', 'À quoi sert useState ?', 'Il déclare une variable d''état locale et sa fonction de mise à jour.', 'react', JSON_ARRAY('hooks', 'état'), NOW(), NOW()), +('10000000-0000-4000-8000-000000000007', 'Que fait git rebase ?', 'Il réapplique les commits d''une branche sur une autre base.', 'git', JSON_ARRAY('branches'), NOW(), NOW()), +('10000000-0000-4000-8000-000000000008', 'Différence entre merge et rebase ?', 'merge crée un commit de fusion, rebase réécrit l''historique de façon linéaire.', 'git', JSON_ARRAY('branches'), NOW(), NOW()), +('10000000-0000-4000-8000-000000000009', 'Qu''est-ce qu''un volume Docker ?', 'Un stockage persistant indépendant du cycle de vie du conteneur.', 'docker', JSON_ARRAY('stockage'), NOW(), NOW()), +('10000000-0000-4000-8000-000000000010', 'Différence entre RUN et CMD dans un Dockerfile ?', 'RUN s''exécute au build, CMD définit la commande lancée au démarrage du conteneur.', 'docker', JSON_ARRAY('dockerfile'), NOW(), NOW()); \ No newline at end of file