【问题标题】:NodeJS with Sequelize and Typescript带有 Sequelize 和 Typescript 的 NodeJS
【发布时间】:2021-07-20 05:30:28
【问题描述】:

我希望能够从我的代码创建模型到 mysql 数据库。 问题是没有创建表.. 我没有任何好的文档来使用 sequelize 和 typescript..

index.ts

import express from 'express';
import cors from "cors";
import helmet from "helmet";
import * as dotenv from "dotenv";
import { sequelize } from "./config/sequelize";
import routes from "./routes";

dotenv.config();

    // Create a new express application instance
    const app = express();
    app.use(cors());
    app.use(helmet());
    app.use(express.json());

    sequelize
        .sync({ force: true })
        .then(() => {
            console.log("Connection has been established successfully.");
            app.use("/api", routes);
            app.listen(3000, () => {
                console.log('Listening...') // OK
            });
        })
        .catch(err => {
            console.error("Unable to connect to the database:", err);
        });

sequelize.ts

import { Sequelize } from 'sequelize-typescript';

export const sequelize = new Sequelize({
  database: 'node',
  dialect: 'mysql',
  username: 'root',
  password: '',
  host: 'localhost',
  models: ['../entities']
})

entities/users.ts

import { Table, Column, Model } from 'sequelize-typescript';

@Table
class Users extends Model {
  @Column
    name!: string;

  @Column
    age!: number;

  @Column
    breed!: string;
}

所以我的用户表没有被创建..我不明白为什么,到数据库的连接是好的。 感谢您的帮助!

【问题讨论】:

    标签: mysql node.js typescript sequelize.js


    【解决方案1】:

    Sequelize 不会为您创建表格。该模型“仅”是对用户实体执行 CRUD 操作的工具。

    您需要手动创建表结构,或者最好使用迁移工具,例如mysql-migrations

    【讨论】:

    • 嗯,好吧 :( 我在想@Table 就是为了那个..
    猜你喜欢
    • 2018-05-23
    • 2016-02-16
    • 2021-11-02
    • 2016-08-01
    • 2020-02-20
    • 2019-04-30
    • 2021-05-14
    • 2018-09-17
    • 2021-06-14
    相关资源
    最近更新 更多