[英]Sequelize synch doesn't create table in db
我有像这样的项目结构
├── index.ts
├── package.json
├── package-lock.json
├── src
│ ├── controllers
│ ├── models
│ │ └── repository.ts
│ ├── routes
│ │ └── repository.ts
│ └── services
│ ├── minio.ts
│ └── sequelize.ts
└── tsconfig.json
// services/sequelize.ts
import { Sequelize } from 'sequelize'
const sequelizeConnection = new Sequelize("randomDb", "randomUser", "randomPassword", {
host: "randomHost",
dialect: "mysql"
})
export default sequelizeConnection
// models/user.ts
import { DataTypes } from 'sequelize'
import sequelizeConnection from '../services/sequelize'
const User = sequelizeConnection.define("user", {
name: {
type: DataTypes.STRING(30),
allowNull: false
}
})
export default User
// index.ts
import express from 'express'
import sequelize from './src/services/sequelize'
const app = express()
const startApp = async()=> {
try {
await sequelize.sync()
app.listen(3000, () => {
console.log(`Listen on port 3000`)
})
} catch (error) {
console.log("Synchronization error")
}
}
startApp()
当我启动应用程序时,“sequelize.sync()”应该创建表“users”,但由于某些原因它没有。 我尝试在“用户”上单独调用sync()方法并且它有效,因此与db的连接没有问题。
await User.sync()
但就我而言,我有更多模型,我不想在每个模型上调用同步方法。
我相信这里的问题只是你的文件夹结构。 模型目录应与 index.ts 处于同一级别。
.sync() 方法的文档不是很好,可能是因为迁移是生产应用程序的首选方法( 参考)。 可能有一个配置属性,您可以在某处设置以维护您当前的结构,尽管我挖了一点,找不到任何东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.