0

I wanted to create on mysql docker container 'academic' database with a few tables like this (script.sql):

use academic_data;

CREATE TABLE University_Departments(
    ID INTEGER NOT NULL AUTO_INCREMENT,
    Fullname VARCHAR(50) NOT NULL,
    Shortcut VARCHAR(20),
    Address VARCHAR(50),
    Specification Varchar(255),
    PRIMARY KEY (ID)
);

CREATE TABLE Professors (
    ID INTEGER NOT NULL AUTO_INCREMENT,
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL, 
    PhoneNumber VARCHAR(50) NOT NULL,
    Address VARCHAR(50) NOT NULL,
    Email VARCHAR(50) NOT NULL CHECK(Email LIKE '%@%.%'), 
    Internship VARCHAR(50) NOT NULL,
    DEPARTMENT_ID INTEGER NOT NULL,
    PRIMARY KEY (ID),
    FOREIGN KEY (DEPARTMENT_ID) REFERENCES University_Departments (ID)
); 

CREATE TABLE Subjects (
    ID INTEGER NOT NULL AUTO_INCREMENT,
    Name VARCHAR(50) NOT NULL, 
    ProfessorID INTEGER NOT NULL,
    ECTS INTEGER NOT NULL,
    Specification VARCHAR(255)
);

CREATE TABLE Students (
    ID INTEGER NOT NULL AUTO_INCREMENT,
    Name VARCHAR(50) NOT NULL, 
    Surname VARCHAR(50) NOT NULL,
    Degree VARCHAR(50) NOT NULL,
    Semester INTEGER NOT NULL,
    PhoneNumber VARCHAR(12) NOT NULL CHECK(LENGTH(PhoneNumber) >= 9),
    Address VARCHAR(50) NOT NULL,
    Email VARCHAR(50) NOT NULL
);

With Dockerfile content like this:

FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD 123
ENV MYSQL_DATABASE academic_data
ENV MYSQL_USER admin
ENV MYSQL_PASSWORD 123
ADD academic_db_filler.sql /docker-entrypoint-initdb.d
EXPOSE 3306

Then i build it:

docker build -t academic_db .

run it:

docker run --name academic_db -p 3306:3306 -d academic_db

and executed bash on it:

docker exec -it academic_db /bin/bash

After logging into my created mysql user 'admin' and into 'academic_data' I checked tables to find... only 2 of them: enter image description here

I was thinking that's maybe some bug (terminal logs don't show any sign of mysql error during creation of tables)... so why Students, Subjects and StudentsSubject couldn't be created?

Hubertius
  • 35
  • 1
  • 6

0 Answers0