我使用node.js和express和sequelize,我的数据库是mysql。我尝试创建一个类模型,如文档中所写:https://sequelize.org/master/manual/model-basics.html。我可以连接到数据库,但不知道如何同步模型与数据库,以创建表。以下是我的用户模型:
const { DataTypes, Model } = require('sequelize');
const connection = require("../server");
export class User extends Model { }
User.init({
id: {
type: DataTypes.BIGINT,
autoIncrement: true,
primaryKey: true,
unique: true,
allowNull: false
},
username: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
},
password: {
type: DataTypes.STRING,
allowNull: false,
},
userType: {
type: DataTypes.STRING,
allowNull: false,
}
}, {
connection
});
这是我的服务器js:
const express = require("express");
const Sequelize = require("sequelize");
const app = express();
const port = 8080;
const connection = new Sequelize("coupons2", "root", "1234", {
host: "localhost",
dialect: "mysql"
})
connection.sync()
.then(() => {
console.log("Connection to DB was successful");
})
.catch(err => {
console.error("Unable to connect to DB", err);
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
})
module.exports = connection;
谢谢大家!
3条答案
按热度按时间brccelvz1#
我认为您忘记了需要上述文档中所示的
Sequelize
如果你想让it表由模型自动创建,你可以在项目中使用
sequelize.sync
fafcakar2#
User.sync()
-如果表不存在则创建表(如果表已经存在则不执行任何操作)User.sync({ force: true })
-创建表,如果表已存在,则先将其删除User.sync({ alter: true })
-检查数据库中表的当前状态(它有哪些列,它们的数据类型是什么,等等),然后在表中执行必要的更改以使它与模型匹配。kqlmhetl3#
我设法通过将模型导入到我的server.js来创建表:
const models = require("./src/models/index");
,并使用sync()方法。