tbls를 사용하면 ER 그림을 git로 관리하기 쉽다
배경.
ER 그림 제작은 MySQL Workbench를 사용했지만git로 모델 파일을 관리하는 것은 적합하지 않습니다. MySQL Workbench로 제작된 모델 파일 중 제출 기록을 봐도 차이를 알 수 없기 때문입니다.
그래서 우리는 소문이 자동으로 생성되는 tbls를 사용했다.
이번에 만든 건 이거예요.
컨디션
OS: MacOS
DB: MySQL8.0
설치하다.
공식.에 있는 대로 하면 돼요. 저는 Mac라서 brew로 설치했어요.
$ brew install k1LoW/tap/tbls
DB 및 테이블 준비
ER 그림은 일어선 DB에서 정보를 얻어 만든 것이다.
우선 mysql8입니다.0개의 데이터베이스를 시작하여 샘플 DB와 표를 만듭니다.
mysql8.0 자체로 ↓ 물건을 사용한다(여러 장소에서 사용할 수 있기 때문에 자주 사용하는 물건은 미리 창고에 보관하는 것이 편리하다)
$ 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
이 성공하면 다음 파일이 생성됩니다.자세한 내용은 여기에 두세요.
어떤 부분은 좀 모양이 바뀌었지만 ER그림이 완성되었다.
사용 편의성 등
한 번의 지령으로 완성할 수 있고 ER 그림 이외에 SQL도 출력할 수 있어서 매우 편리하다고 생각합니다.
예컨대 엑셀 등 관리설명서를 쓸 때 이를 베껴 쓸 방법을 강구해야 하는데 어떡하지.
참고 자료
Reference
이 문제에 관하여(tbls를 사용하면 ER 그림을 git로 관리하기 쉽다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/lightkun/articles/6caf17872b6521텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)