DDL 작성 및 Entity 작성

DDL 작성

형상 관리를 위하여 아래의 파일에 DDL을 추가 작성합니다.

docker/ddl/1_init_ddl.sql

/*
    user table
*/
DROP TABLE IF EXISTS _user;
CREATE TABLE IF NOT EXISTS _user (
  `id` INT PRIMARY KEY NOT NULL AUTO_INCREMENT COMMENT 'id',
  `account` VARCHAR(255) UNIQUE NOT NULL COMMENT 'account',
  `password` VARCHAR(255) NOT NULL COMMENT 'password',
  `username` VARCHAR(255) NOT NULL COMMENT 'username',
  `role` INT DEFAULT 0 COMMENT 'role',
  `created_at` DATETIME DEFAULT now() COMMENT 'create time',
  `updated_at` DATETIME DEFAULT NULL COMMENT 'update time',
  `deleted_at` DATETIME DEFAULT NULL COMMENT 'delete time'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT="user";

DDL 반영

DDL을 반영하는 방법은 두가지 방법이 있습니다.

  1. 데이터베이스에 접속하여 위 DDL을 실행합니다.

  2. docker container를 삭제한 후 다시 docker container를 생성하여도 됩니다.

Entity 작성

  1. 백엔드 디렉토리로 이동합니다.

cd backend
  1. typeorm-model-generator를 사용하여 entity를 일괄 생성합니다.

typeorm-model-generator -h localhost -d develop -p 4001 -u docker -x 'docker' -e mysql -o .
  1. backend/ormconfig.json을 삭제합니다.

  2. backend/entities 디렉토리에 있는 entity를 복사하여 backend/src/entities 디렉토리에 붙여넣기합니다.

  3. backend/entites 디렉토리를 삭제합니다

  4. 복사한 entity의 파일명을 네이밍 컨벤션에 맞게 변경합니다.

  5. Date 타입에 string을 추가해줍니다

@Column("datetime", {
  name: "created_at",
  nullable: true,
  comment: "create time",
  default: () => "CURRENT_TIMESTAMP",
})
createdAt: string | Date | null;

@Column("datetime", {
  name: "updated_at",
  nullable: true,
  comment: "update time",
})
updatedAt: string | Date | null;

@Column("datetime", {
  name: "deleted_at",
  nullable: true,
  comment: "delete time",
})
deletedAt: string | Date | null;
  1. 파일을 저장하여 prettier 포맷팅을 적용하면서 저장합니다.

Last updated