Sequelize 未能创建 table,错误为 "Executing (default): SELECT 1+1 AS result"

Sequelize failing to create a table with the error "Executing (default): SELECT 1+1 AS result"

感谢您抽出宝贵时间提供帮助。当 运行 我的服务器收到消息“正在执行(默认):SELECT 1+1 AS 结果”。我的表没有被创建。我该如何解决这个错误?我正在使用技术 MySQL、Sequelize、JavaScript、Express 和 Node.

Connection.js(我检查了.env,信息是准确的)

const Sequelize = require('sequelize');
require('dotenv').config();

const sequelize = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PW, {
      host: 'localhost',
      dialect: 'mysql',
      port: 3306
});

module.exports = sequelize;

Schema.sql

DROP DATABASE IF EXISTS events_db;

CREATE DATABASE events_db;

客户模型

const { DataTypes, Model } = require('sequelize');
const sequelize = require('../config/connection');

class Customer extends Model {}

Customer.init(
    {
        uuid: {
            type: DataTypes.UUID,
            defaultValue: DataTypes.UUIDV1,
            primaryKey: true,
            allowNull: false,
            unique: true,
        },
        name: {
            type: DataTypes.STRING,
            allowNull: false,
            validate: {
                notEmpty: true,
            }
        },
        phone: {
            type: DataTypes.STRING,
            allowNull: false,
            unique: true,
            validate: {
                notEmpty: true,
                is: /^[\+]?[(]?\d{3}[)]?[-\s\.]?\d{3}[-\s\.]?\d{4,6}$/im
            }
        },
        email: {
            type: DataTypes.STRING,
            allowNull: false,
            unique: true,
            validate: {
                isEmail: true
            }
        },
        address: {
            type: DataTypes.STRING,
            allowNull: false,
            unique: true,
            validate: {
                notEmpty: true
            }
        }
    },
    {
        sequelize,
        freezeTableName: true,
        underscored: true,
        modelName: 'customer'
    }
);

module.exports = Customer;

型号index.js

const Customer = require('./Customer');
const Event = require('./Event');
const EventType = require('./EventType');
const Reservation = require('./Reservation');

Customer.hasMany(Reservation, {foreignKey: { allowNull: false }});
Event.hasMany(Reservation, {foreignKey: { allowNull: false }});
Event.hasOne(EventType, {foreignKey: { allowNull: false }});
Event.hasOne(Customer, {foreignKey: { allowNull: false }});

module.exports = { Customer, Event, EventType, Reservation };

Server.js

const express = require('express');
const sequelize = require('./config/connection');

const app = express();
const PORT = process.env.PORT || 3001;

const routes = require('./routes');

app.use(express.json());
app.use(express.urlencoded({
    extended: true
}));

app.use(routes);

sequelize.sync({ force: false }).then(() => {
    app.listen(PORT, () => {
        console.log(`App is listening on port ${PORT}`);
    });
});

将模型导入 server.js 文件。不需要调用变量。这允许续集“看到”我的模型。在实现控制器或 GraphQL 时,可以删除此导入。