tbls를 사용하면 ER 그림을 git로 관리하기 쉽다

배경.


ER 그림 제작은 MySQL Workbench를 사용했지만git로 모델 파일을 관리하는 것은 적합하지 않습니다. MySQL Workbench로 제작된 모델 파일 중 제출 기록을 봐도 차이를 알 수 없기 때문입니다.
그래서 우리는 소문이 자동으로 생성되는 tbls를 사용했다.
https://github.com/k1LoW/tbls
이번에 만든 건 이거예요.
https://github.com/katsuya-n/pub_tbls_sample

컨디션


OS: MacOS
DB: MySQL8.0

설치하다.


공식.에 있는 대로 하면 돼요. 저는 Mac라서 brew로 설치했어요.
$ brew install k1LoW/tap/tbls

DB 및 테이블 준비


ER 그림은 일어선 DB에서 정보를 얻어 만든 것이다.
우선 mysql8입니다.0개의 데이터베이스를 시작하여 샘플 DB와 표를 만듭니다.
mysql8.0 자체로 ↓ 물건을 사용한다(여러 장소에서 사용할 수 있기 때문에 자주 사용하는 물건은 미리 창고에 보관하는 것이 편리하다)
https://github.com/katsuya-n/pub_docker_mysql8
$ docker image build -t test-mysql8 .
$ docker container run -d --name test-mysql8 -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 test-mysql8
$ mysql -uroot -h 127.0.0.1 -ppassword -P 3306
SQL을 주입하는데, 다양한 유형으로 확인하고 싶어 안이 조금 거칠다.
create database tbls_app;

use tbls_app;

create table users (
	id int not null auto_increment, 
	name varchar(100) not null,
	created_at datetime not null,
	primary key(id)
);

create table posts (
	id int not null auto_increment,
	user_id int not null,
	primary key(id),
	foreign key (user_id) references users(id) on delete cascade
);

create table favorites (
	id int not null auto_increment,
	user_id int not null,
	post_id int not null,
	primary key(id),
	foreign key (user_id) references users(id) on delete cascade,
	foreign key (post_id) references posts(id) on delete cascade
);

create table topics (
	id int not null auto_increment,
	topic_key int,
	body text,
	is_visible bool,
	deleted_at datetime not null,
	primary key(id),
	unique topic_key_idx(topic_key),
	index deleted_at_idx(deleted_at)
);

드디어 써보겠습니다.


tbls를 사용하면 파일 하나tbls.yml만 필요하기 때문에 제작할 수 있습니다.
dsn은 DB의 연결 정보를 기록합니다.
docPath는 출력 파일의 배치입니다.
.tbls.yml
dsn: mysql://root:password@localhost:3306/tbls_app
docPath: ref
집행은 명령일 뿐이야. 아주 간단해!!
$ tbls doc
이 성공하면 다음 파일이 생성됩니다.
자세한 내용은 여기에 두세요.
https://github.com/katsuya-n/pub_tbls_sample
어떤 부분은 좀 모양이 바뀌었지만 ER그림이 완성되었다.

사용 편의성 등


한 번의 지령으로 완성할 수 있고 ER 그림 이외에 SQL도 출력할 수 있어서 매우 편리하다고 생각합니다.
예컨대 엑셀 등 관리설명서를 쓸 때 이를 베껴 쓸 방법을 강구해야 하는데 어떡하지.

참고 자료


https://qiita.com/k1LoW/items/2010413a8547b1e6645e
https://tech.pepabo.com/2021/03/08/colormeshop-uses-tbls/

좋은 웹페이지 즐겨찾기