Docker 사용중 생긴 문제 기록 (2)

김민준·2024년 5월 16일
0

사이트가 로컬에서 돌아가지 않는다

원래 개발을 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 에서 외래키로 table2user_no를 참조하므로 실제로는 table2를 먼저 생성해야한다

다행히 볼륨을 사용하고 있기 때문에 도커를 껐다 켜도 DB 설정은 유지되었다
docker-compose down
docker-compose up -d

profile
node 개발자

0개의 댓글

관련 채용 정보