ORM์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์๋์ผ๋ก ์์ฑํ๋ฉด ๋ฌผ๋ก ํธํ์ง๋ง,
๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ ์ด๋ธ์ ์์ฑ ํ๊ณ ์ํฐํฐ๋ฅผ ์ญ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํ๋ ์ํฉ์ด ์๋ค.
์ฆ, ํ ์ด๋ธ ์์ฑ โก๏ธ TypeORM Generator โก๏ธ ์ํฐํฐ ์์
-- -----------------------------------------------------
-- Table `test`.`test_reverse_copy`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `test`.`test_reverse_copy` (
`test_reverse_copy_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`type` VARCHAR(20) CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci' NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`deleted_at` DATETIME NULL DEFAULT NULL,
PRIMARY KEY (`test_reverse_copy_id`))
ENGINE = InnoDB
AUTO_INCREMENT = 166
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
npx typeorm-model-generator -h [ํธ์คํธ ์ฃผ์] -p 3306 -d [๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ] -u [์ ์ ์ด๋ฆ] -x [์ ์ํจ์ค์๋] -e mysql
Need to install the following packages:
typeorm-model-generator@0.4.6
Ok to proceed? (y) y
npm WARN deprecated adal-node@0.2.4: This package is no longer supported. Please migrate to @azure/msal-node.
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs
typeorm-model-generator@0.4.6
[3:28:27 PM] Starting creation of model classes.
[3:28:27 PM] Typeorm model classes created.
npm notice
npm notice New minor version of npm available! 10.2.3 -> 10.5.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.5.0
npm notice Run npm install -g npm@10.5.0 to update!
npm notice
/output/entities/TestReverseCopy.ts
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
@Entity("test_reverse_copy", { schema: "rever_school" })
export class TestReverseCopy {
@PrimaryGeneratedColumn({
type: "bigint",
name: "test_reverse_copy_id",
unsigned: true,
})
testReverseCopyId: string;
@Column("varchar", {
name: "type",
length: 20,
})
type: string;
@Column("datetime", {
name: "created_at",
default: () => "CURRENT_TIMESTAMP",
})
createdAt: Date;
@Column("datetime", {
name: "updated_at",
default: () => "CURRENT_TIMESTAMP",
})
updatedAt: Date;
@Column("datetime", { name: "deleted_at", nullable: true })
deletedAt: Date | null;
}
๋ค์๊ณผ ๊ฐ์ด, ํ์ํ ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ๊ณ , ์ ์์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ๋์๋ค๋ฉด TypeORM๊ณผ ์ฐ๋ ๋๋ค.