【问题标题】:where can i specify the compiled migration我在哪里可以指定编译的迁移
【发布时间】:2018-10-05 01:30:45
【问题描述】:

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

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

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

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

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

谢谢。

【问题讨论】:

    标签: postgresql typescript express sequelize-cli


    【解决方案1】:

    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 编写它们。

    【讨论】:

    • 谢谢 drinchev,您的解决方案确实引导我找到解决问题的正确位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多