원래 개발을 Docker로 하지 않았기 때문에 서버환경과 내 로컬 설정이 맞지 않아서 작동을 하지 않는다.
하지만 약간의 설정만 추가하니 사이트가 로컬에서 작동했다.
File: /path/to/index.php
Line: 315
Function: require_once
데이터베이스 오류
Error Number: 1146
Table 'database1.table1' doesn't exist
SELECT `t1`.*, `t2`.`id` as `user_id`, `t2`.`name` as `user_name` FROM `table1` as `t1` JOIN `table2` as `t2` ON `t2`.`no` = `t1`.`user_no`
Filename: models/model1.php
Line Number: 23
위와같이 필요한 테이블의 이름과 속성들을 알려주서 도커를 열고 테이블을 추가했다
docker exec -it db mysql -u root -p
: 도커의 MySQL에 접속
USE database1;
: 데이터 베이스 선택
테이블 생성
:
// 테이블1 생성
CREATE TABLE `table1` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`description` TEXT,
`latitude` DECIMAL(10, 8) NOT NULL,
`longitude` DECIMAL(11, 8) NOT NULL,
`user_no` INT NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`user_no`) REFERENCES `table2`(`no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
// 테이블2 생성
CREATE TABLE `table2` (
`no` INT NOT NULL AUTO_INCREMENT,
`id` VARCHAR(255) NOT NULL,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
table1
에서 외래키로 table2
의 user_no
를 참조하므로 실제로는 table2
를 먼저 생성해야한다
다행히 볼륨을 사용하고 있기 때문에 도커를 껐다 켜도 DB 설정은 유지되었다
docker-compose down
docker-compose up -d