LoginSignup
5
2

More than 3 years have passed since last update.

個人的 TypeORM 導入コピペ集

Last updated at Posted at 2019-08-15

パッケージを入れる

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

$ 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

一言

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

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2