Я работал с простой таблицей MySQL, используя Docker Compose, которая включала только столбцы ID и NAME.Я попытался обновить свой файл myDb.sql, который изначально создает таблицу следующим образом:
CREATE TABLE `Person` (
`id` int(11) NOT NULL,
`firstName` varchar(50) NOT NULL, // updated this column
`lastName` varchar(50) NOT NULL // added this column
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Я обновил столбец NAME до firstName и добавил столбец lastName.
Затем я остановил контейнеры Docker, запустив DOCKER-COMPOSE STOP.
Затем я перезапустил контейнеры Docker, запустив DOCKER-COMPOSE UP.Я даже попробовал DOCKER-COMPOSE RESTART.
Сообщение об ошибке, которое я смог напечатать в консоли, было таким:
SELECT '', id, `firstName` From Person<br>Unknown column 'firstName' in 'field list'
Это заставляет меня поверить, что я не перезапустил Docker Compose правильно.
Какперезапустить Docker Compose, чтобы он выполнял команду CREATE TABLE?
Редактировать
Вот мой файл docker-compose.yml:
version: "3.7"
services:
www:
build: .
ports:
- "8001:80"
volumes:
- ./www:/var/www/html/
links:
- db
networks:
- default
db:
image: mysql:5.7.13
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: myDb
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
volumes:
- ./dump:/docker-entrypoint-initdb.d
- persistent:/var/lib/mysql
networks:
- default
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- db:db
ports:
- 8000:80
environment:
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
volumes:
persistent:
Мой файл Docker выглядит такэто:
FROM php:7.0.30-apache
RUN docker-php-ext-install mysqli