dbmate를 이용해서 mysql에 있는 westagram 데이터 베이스에 테이블을 추가 했는데 추가로 필요한 column이 생겨서 어떻게 업데이트를 할 수 있을 지 알아보았다.
지금은 실제로 서비스 되고 있지 않기 때문에 dbmate down명령어를 이용해서 table을 지우고 아래 코드에 한줄 추가하면 되지만 실제 서비스 되고 있는 db를 그런식으로 업데이트 할 수는 없기 때문에 다른 방법이 필요했다.
-- migrate:up
CREATE TABLE posts
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
content VARCHAR(2000) NULL,
user_id INT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
FOREIGN KEY (user_id) REFERENCES users (id)
);
-- migrate:down
DROP TABLE posts;
방법은 생각보다 간단했다.
dbmate new 명령어로 migrations파일을 하나 만들어 주고
dbmate new create_posts_update
만들어진 migrations파일에 테이블 column 추가 명령어를 넣어주고 다시 dbmate up을 통해 mysql에 있는 테이블을 수정해준다.
ARTER TABLE posts ADD image_url VARCHAR(50) NULL;
dbmate up