Hi everyone!!
I like to use the library TypeORM •ᴗ••ᴗ••ᴗ••ᴗ•
As usual, When stating new project, i typically copy the database modules & config script migration
from the old source. However, with TypeORM version 0.3.x, it doesn't seem to work. ¯_(ツ)/¯ ¯_(ツ)/¯ ¯_(ツ)_/¯
I have researched and felt confused while applying TypeORM to the project.
So, I want to share it with everyone.
Prepare:
New app with nestjs
Installyarn add mysql2 typeorm @nestjs/typeorm
Repository
https://bitbucket.org/main-28/typeorm-migration-0.3/src/main/
Setup database module
.
├── src/
│ ├── database/
│ │ ├── migrations # This folder contains migrate file
│ │ ├── data-source-migration.ts # This file config run migration create, run, ...
│ │ └── database.module.ts # This file config query to database
│ └── app.module.ts
└── package.json
Config package json file
"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli",
"migration:create": "yarn typeorm migration:create ./src/database/migrations/${name}",
"migration:create:window": "yarn typeorm migration:create ./src/database/migrations/%name%",
"migration:run": "yarn typeorm -- --dataSource=./src/database/data-source-migration.ts migration:run",
"migration:revert": "yarn typeorm -- --dataSource=./src/database/data-source-migration.ts migration:revert",
File name format
This format would help you and the team quickly understand what someone has edited.
Please provide feedback on this format for me.
- Create: create-{table-name}-table
- Modify > 1: modify-{modify-name}-{table-name}-table
- Modify = 1: add-{field-name}-{table-name}-table
- Modify = 1: update-{field-name}-{table-name}-table
- Modify = 1: delete-{field-name}-{table-name}-table
Short script
Create table post
name=create-post-table yarn migration:create
Run migrationyarn migration:run