我在哪里可以指定编译的迁移

时间:2018-04-24 17:24:09

标签: postgresql typescript express sequelize-cli

我正在使用postgres数据库ORM sequelize,我正在使用typescript作为快递nodeJs的后端脚本。

第一个问题:有没有办法直接创建模型到.ts?

第二个问题:尝试迁移数据库时,我收到此消息:

  

“文件:20180424170257-create-todo.ts与模式不匹配:/。js $ /”

我在哪里可以指定已编译的迁移?

感谢。

1 个答案:

答案 0 :(得分:0)

Sequelize没有附带它自己的类型定义,所以为了添加它们,你需要从DefinitelyTyped安装它们

npm install @types/sequelize

您可以直接使用这些类型定义创建模型。例如,您可以查看tests of sequelize.d.ts

看起来像是

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 
} );

至于你的第二个问题。 Umzug使用普通的JS文件进行迁移,因此您必须将它们编译为JS文件然后使用它们(在构建步骤中,在运行迁移之前),或者只使用JavaScript而不是TypeScript编写它们