postgresql - unde pot specifica migrarea compilată


Folosesc baza de date Postgres cu ORM-ul Sequelize și folosesc TypeScript ca script backend pentru Express în NodeJs.

Prima întrebare: Există o modalitate de a crea un model direct în .ts ?

A doua întrebare: În timp ce încerc să migrez baza de date, primesc acest mesaj:

"Fișier: 20180424170257-create-todo.ts nu corespunde modelului: /.js$/"

Unde pot specifica migrarea compilată?

Mulțumesc.

Răspuns #1

Sequelize nu vine cu propriile definiții de tip, așa că pentru a le adăuga trebuie să le instalezi de la DefinitelyTyped

npm install @types/sequelize

Poți crea un model direct cu acele definiții de tip deja în vigoare. Pentru exemple, poți verifica testele din sequelize.d.ts

Se pare că

interface TaskAttributes {
    revision? : number;
    name? : string;
}

// For your instance methods
interface TaskInstance extends Sequelize.Instance<TaskAttributes> {
    upRevision(): void { ... };
}

const GTask = s.define<TaskInstance, TaskAttributes>( 'task', { 
    revision : Sequelize.INTEGER, 
    name : Sequelize.STRING 
} );

În ceea ce privește a doua ta întrebare. Umzug folosește fișiere JS simple pentru migrațiile tale, așa că va trebui fie să le compilezi în fișiere JS și apoi să le folosești (într-un pas de compilare, înainte de a rula migrațiile), fie să le scrii direct în JavaScript și nu în TypeScript.