마이그레이션 com TypeORM no NodeJs
21951 단어 migrationsnodetypeorm
1 – 추가 파코테스
필요한 추가 작업이 있을 경우 다음 명령을 실행하십시오.
a) 유형ORM
yarn add typeorm
yarn add reflect-metadata
b) 포스트그레스
yarn add pg
c) ts-노드
yarn add -D ts-node-dev
yarn add -D tsconfig-paths
2 – 스크립트 패키지
다음 집행자는 package.json을 사용하지 않고 스크립트를 실행하고 스크립트를 입력하거나 실행해야 합니다.
"scripts": {
"dev:server": "ts-node-dev -r tsconfig-paths/register --inspect --transpile-only --ignore-watch node_modules src/server.ts",
"start": "ts-node src/server.ts",
"typeorm": "ts-node-dev -r tsconfig-paths/register ./node_modules/typeorm/cli.js"
},
3 – ORM 구성
Para poder criar e acessar a base de dados temos que criar as configurações, para isso cry na raiz do projeto or arquivo ormconfig.json.
아니오 또는 mconfig.json coloque 또는 código abaixo:
[{
"name": "default",
"type": "postgres",
"host": "localhost",
"port": 5432,
"username": "postgres",
"password": "docker",
"database": "baseOrm",
"entities": ["./src/models/**/*.ts"],
"migrations": ["./src/migrations/*.ts"],
"cli": {
"migrationsDir": "./src/migrations/"
}
}]
유형: 기본 유형의 유형: mysql, postgres, cockroachdb, mariadb, sqlite, better-sqlite3, cordova, nativescript, oracle, mssql, mongodb, sqljs, react-native;
호스트: Banco de dados remoto 또는 VM을 사용하려면 o IP를 활용하십시오.
포트: porta de acesso ao banco de dados;
사용자 이름: usuário com acesso ao banco de dados;
암호: senha de acesso ao banco de dados;
데이터베이스: nome da base de dados;
엔터티: 지역 onde vamos criar nossas entidades, essas entidades são as que vamos mapear;
마이그레이션: informa o local onde nossas 마이그레이션 são carregadas;
4 – 엔티다데스
Para exemplificar vou criar duas entidades com relacionamento one-to-one são elas: Profile e User.
a) profile.ts
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";
@Entity("profiles")
export default class Profile {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column()
gender: string;
@Column()
photo: string;
}
b) user.ts
import {
Entity,
PrimaryGeneratedColumn,
Column,
OneToOne,
JoinColumn
} from "typeorm";
import Profile from "./profile";
@Entity("users")
export default class User {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column()
name: string;
@Column()
profile_id: string;
@OneToOne(type => Profile)
@JoinColumn({ name: "profile_id" })
profile: Profile;
}
다음 항목을 확인해야 합니다. user.ts que possui profile.ts.
5 – 유형ORM CLI
Depois de adicionar os pacotes, configuração os dados de acesso ao banco de dados e criar nossas entidades agora é hora de executar o comando para criar as tabelas.
a) 크리어 마이그레이션
yarn typeorm migration:create -n CreateProfile
yarn typeorm migration:create -n CreateUser
6 – 마이그레이션
Após executar o passo acima será criados as migrations, temos que adicionar os códigos que vão criar as tabelas, segue abaixo:
a) 마이그레이션 프로필
import { MigrationInterface, QueryRunner, Table } from "typeorm";
export default class CreateProfile1600016576988 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
name: "profiles",
columns: [
{
name: "id",
type: "uuid",
isPrimary: true,
generationStrategy: "uuid",
default: "uuid_generate_v4()"
},
{
name: "gender",
type: "varchar(200)"
},
{
name: "photo",
type: "varchar(200)"
}
]
})
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropTable("profiles");
}
}
b) 마이그레이션 사용자
import { MigrationInterface, QueryRunner, Table } from "typeorm";
export default class CreateUser1600016590838 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
name: "users",
columns: [
{
name: "id",
type: "uuid",
isPrimary: true,
generationStrategy: "uuid",
default: "uuid_generate_v4()"
},
{
name: "name",
type: "varchar(200)"
},
{
name: "profile_id",
type: "uuid"
}
],
foreignKeys: [
{
name: "providerUser",
referencedTableName: "profiles",
referencedColumnNames: ["id"],
columnNames: ["profile_id"],
onDelete: "CASCADE",
onUpdate: "CASCADE"
}
]
})
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropTable("users");
}
}
Após criar as migrations vamos executar o comando para rodar as migrations e criar as tabelas:
yarn typeorm migration:run
Set tudo ocorre sem erro será criado as tabelas na base de dados igual segue a imagem abaixo:
다음 명령을 실행할 수 있는 명령을 취소할 수 있습니다.
yarn typeorm migration:revert
Código completo GitHub
Reference
이 문제에 관하여(마이그레이션 com TypeORM no NodeJs), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wandealves/migrations-com-typeorm-no-nodejs-4i80텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)