typeorm cli

main
syneff 1 month ago
parent ad24c4ac05
commit 5f0afdd23c
  1. 14
      nest-user-api/data-source.ts
  2. 7
      nest-user-api/package.json
  3. 4
      nest-user-api/src/app.module.ts
  4. 11
      nest-user-api/src/database/migrations/1750406542391-Migration.ts
  5. 15
      nest-user-api/src/database/migrations/1750406588424-Migration.ts
  6. 14
      nest-user-api/src/database/migrations/1750406841786-Migration.ts
  7. 3
      nest-user-api/src/users/user.entity.ts

@ -0,0 +1,14 @@
import { DataSource } from "typeorm";
export default new DataSource({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'init00!!',
database: 'test_db',
entities: ['src/**/*.entity.ts'],
migrations: ['src/database/migrations/*.ts'],
migrationsTableName: 'migrations',
synchronize: false
});

@ -17,7 +17,12 @@
"test:watch": "jest --watch", "test:watch": "jest --watch",
"test:cov": "jest --coverage", "test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json" "test:e2e": "jest --config ./test/jest-e2e.json",
"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js --dataSource ./data-source.ts",
"migration:create": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js migration:create ./src/database/migrations/Migration",
"migration:generate": "npm run typeorm migration:generate ./src/database/migrations/Migration",
"migration:run": "npm run typeorm migration:run",
"migration:revert": "npm run typeorm migration:revert"
}, },
"dependencies": { "dependencies": {
"@nestjs/common": "^11.0.1", "@nestjs/common": "^11.0.1",

@ -14,8 +14,8 @@ import { User } from './users/user.entity';
username: 'root', username: 'root',
password: 'init00!!', password: 'init00!!',
database: 'test_db', database: 'test_db',
entities: [User], entities: ['src/**/*.entity.ts'],
synchronize: true //개발용 // synchronize: true //개발용
}), }),
UsersModule], UsersModule],
controllers: [AppController], controllers: [AppController],

@ -0,0 +1,11 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class Migration1750406542391 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
}
public async down(queryRunner: QueryRunner): Promise<void> {
}
}

@ -0,0 +1,15 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class Migration1750406588424 implements MigrationInterface {
name = 'Migration1750406588424'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE \`user\` (\`id\` int NOT NULL AUTO_INCREMENT, \`name\` varchar(255) NOT NULL, \`email\` varchar(255) NOT NULL, UNIQUE INDEX \`IDX_e12875dfb3b1d92d7d7c5377e2\` (\`email\`), PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX \`IDX_e12875dfb3b1d92d7d7c5377e2\` ON \`user\``);
await queryRunner.query(`DROP TABLE \`user\``);
}
}

@ -0,0 +1,14 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class Migration1750406841786 implements MigrationInterface {
name = 'Migration1750406841786'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`user\` ADD \`password\` varchar(255) NOT NULL`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`user\` DROP COLUMN \`password\``);
}
}

@ -8,6 +8,9 @@ export class User {
@Column() @Column()
name: string; name: string;
@Column()
password: string;
@Column({ unique: true }) @Column({ unique: true })
email: string; email: string;
} }
Loading…
Cancel
Save