Este tutorial es un complemento del curso de Java EE para la creación de la base de datos a través de la terminal y ejecutando consultas SQL (para no tener que utilizar PhpMyAdmin como se hace en el curso actualmente).
Se deben ejecutar los siguientes comandos en la terminal:
sudo apt-get update
sudo apt-get install mysql-server mysql-client
mysql --version
sudo mysql_secure_installation
En los parámetros de seguridad, se colocan todas las opciones en Yes (Menos la de deshabilitar el login de manera remota).
sudo apt-get install mysql-workbench
mysql -u root -p
mysql>
CREATE DATABASE platzi_java_ee; -- Crear nueva BD.
CREATE USER [email protected] IDENTIFIED BY 'PlatziProfesores'; -- Crear el usuario user_wp con contraseña PlatziProfesores.
GRANT ALL PRIVILEGES ON platzi_java_ee.* TO [email protected]; -- Dar acceso al usuario de la nueva BD creada.
FLUSH PRIVILEGES; -- Informar de los nuevos privilegios establecidos.exit
Se inicia MySQL Workbench y se consulta por separado cada una de las siguientes consultas:
CREATESCHEMA`platzi_java_ee`DEFAULTCHARACTERSET utf8 DEFAULTCOLLATE utf8_general_ci;
-- ALTER SCHEMA `platzi_java_ee` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;CREATETABLE`platzi_java_ee`.`teacher` (
`id_teacher`INTNOTNULL AUTO_INCREMENT,
`name`VARCHAR(250) CHARACTERSET'utf8'NOTNULL,
`avatar`VARCHAR(250) CHARACTERSET'utf8'NULL,
PRIMARY KEY (`id_teacher`)) ENGINE=InnoDBDEFAULTCHARSET=utf8;
CREATETABLE`platzi_java_ee`.`course` (
`id_course`INTNOTNULL AUTO_INCREMENT,
`name`VARCHAR(250) CHARACTERSET'utf8'NOTNULL,
`themes`TEXTCHARACTERSET'utf8'NULL,
`project`VARCHAR(250) CHARACTERSET'utf8'NULL,
`id_teacher`INTNOTNULL,
PRIMARY KEY (`id_course`),
INDEX`fk_course__teacher_idx` (`id_teacher`),
CONSTRAINT`fk_course__teacher`
FOREIGN KEY (`id_teacher`)
REFERENCES`platzi_java_ee`.`teacher` (`id_teacher`)) ENGINE=InnoDBDEFAULTCHARSET=utf8;
CREATETABLE`platzi_java_ee`.`social_media` (
`id_social_media`INTNOTNULL AUTO_INCREMENT,
`name`VARCHAR(250) CHARACTERSET'utf8'NOTNULL,
`icon`VARCHAR(250) CHARACTERSET'utf8'NULL,
PRIMARY KEY (`id_social_media`)) ENGINE=InnoDBDEFAULTCHARSET=utf8;
CREATETABLE`platzi_java_ee`.`teacher_social_media` (
`id_teacher_social_media`INTNOTNULL AUTO_INCREMENT,
`id_teacher`INTNOTNULL,
`id_social_media`INTNOTNULL,
`nickname`VARCHAR(250) CHARACTERSET'utf8'NOTNULL,
PRIMARY KEY (`id_teacher_social_media`),
INDEX`fk_teacher_social_media__teacher_idx` (`id_teacher`),
INDEX`fk_teacher_social_media__social_media_idx` (`id_social_media`),
CONSTRAINT`fk_teacher_social_media__teacher`
FOREIGN KEY (`id_teacher`)
REFERENCES`platzi_java_ee`.`teacher` (`id_teacher`),
CONSTRAINT`fk_teacher_social_media__social_media`
FOREIGN KEY (`id_social_media`)
REFERENCES`platzi_java_ee`.`social_media` (`id_social_media`)) ENGINE=InnoDBDEFAULTCHARSET=utf8;
De manera adicional se pueden utilizar las siguientes consultas, que serán las que se ejecutarán cuando se haga el despliegue del proyecto a Heroku.
-- DataINSERTINTO platzi_java_ee.teacher VALUES (1,'Anahi Salgado','Avatar'),(2,'Freddy Vega','Avatar'),(3,'Leonidas Esteban','Avatar');
INSERTINTO platzi_java_ee.course VALUES (1, 'Java Avanzado', 'Tema 1', 'Rest API', 1),(2, 'Curso Definitivo de Android', '* Qué es Android', 'Platzigram', 1);
INSERTINTO platzi_java_ee.social_media VALUES (1,'twitter','avatar'),(3,'facebook','avatar');
INSERTINTO platzi_java_ee.teacher_social_media VALUES (1,1,1,'@anncode'),(2,1,3,'Anncode');