Edited at

個人的 TypeORM 導入コピペ集


パッケージを入れる

基本的には、以下を入れる。

$ npm i typeorm reflect-metadata

$ npm i @types/node typescript ts-node tsconfig-paths --save-dev

MySQL を使うなら

$ npm i mysql

PostgreSQL を使うなら

$ npm i pg

あとバリデが必要なら

npm i class-validator --save-dev

あたりを入れる。


npm scripts に typeorm をつくる

"scripts": {

"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js"
}

とかしておくと

$ npm run typeorm migration:run

とか

$ npm run typeorm migration:generate -- -n InitialSchema

とかできて便利な気がする。


tsconfig.json

まあ target とかは、よしなに変える。

{

"compilerOptions": {
"target": "es2015",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"moduleResolution": "node",
"baseUrl": "./",
"esModuleInterop": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}

大事なのは experimentalDecorators と emitDecoratorMetadata が true になっていること。


ormconfig.js

環境変数は、dotenv とか使うと良いと思う。

module.exports = {

type: 'mysql',
host: process.env.DB_HOST,
port: process.env.DB_PORT,
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
charset: process.env.DB_CHARSET,
timezone: process.env.DB_TIMEZONE,
entities: ['./src/models/entities/*.ts'],
migrations: ['./src/models/migrations/*.ts'],
cli: {
entitiesDir: './src/models/entities',
migrationsDir: './src/models/migrations'
}
}

ちなみに .env.example は、こんな感じ。

DB_HOST=

DB_PORT=3306
DB_USERNAME=
DB_PASSWORD=
DB_DATABASE=
DB_CHARSET=utf8mb4
DB_TIMEZONE=utc


一言

以上、個人的メモでした。