gpt4 book ai didi

node.js - SequelizeDatabaseError : SQLITE_ERROR: no such table: Users

转载 作者:行者123 更新时间:2023-12-03 22:26:28 26 4
gpt4 key购买 nike

我正在将 Sequelize 与 sqlite 一起使用,当我尝试向表中插入数据时出现错误

Executing (default): INSERT INTO `Users` (`id`,`username`,`password`,`createdAt`,`updatedAt`) 
VALUES (NULL,$1,$2,$3,$4);
{ SequelizeDatabaseError: SQLITE_ERROR: no such table: Users

我正在使用 sequelize-cli 进行迁移。

这是我的文件结构 img

file structure

globalConfigs.js

const dotenv = require('dotenv');

dotenv.config({
path: './config.env'
});

module.exports = {
port: process.env.PORT || 9000,
database: {
dialect: 'sqlite',
sotrage: './MVC/db/dbFiles/portfolioDB.sqlite'
}

};


dbConnectorConfig.js

const globalConfigs = require('../globalConfigs/globalconfigs');
const Sequelize = require('sequelize');


const sequelize = new Sequelize(
globalConfigs.database
);

module.exports = sequelize;


用户模型.js

const Sequelize = require("sequelize");
const sequelize = require("../db/dbConnectorConfigs");

module.exports = sequelize.define("User", {
id: {
type: Sequelize.INTEGER(11),
allowNull: false,
autoIncrement: true,
primaryKey: true,
},
username: {
type: Sequelize.STRING(35),
allowNull: false,
unique: true
},
password: {
type: Sequelize.STRING(20),
allowNull: false
}
});


运行 : sequelize migration:create --name user_table

我得到文件

'use strict';

module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('users', {
id: {
type: Sequelize.INTEGER(11),
allowNull: false,
autoIncrement: true,
primaryKey: true,
},
username: {
type: Sequelize.STRING(35),
allowNull: false,
unique: true
},
password: {
type: Sequelize.STRING(20),
allowNull: false
},
createdAt: Sequelize.DATE,
updatedAt: Sequelize.DATE

});
},

down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('users');

}
};


这是sequelize-cli生成的config.json文件

{
"development": {
"username": "root",
"password": null,
"host": "127.0.0.1",
"dialect": "sqlite",
"storage": "./db/dbFiles/portfolio.sqlite"

},
"test": {
"username": "root",
"password": null,
"database": "database_test",
"host": "127.0.0.1",
"dialect": "mysql",
"operatorsAliases": false
},
"production": {
"username": "root",
"password": null,
"database": "database_production",
"host": "127.0.0.1",
"dialect": "mysql",
"operatorsAliases": false
}
}


这是用户模型创建用户的文件

认证 Controller .js

const User = require("../models/userModel");

exports.createUser = async (req, res, next) => {

const user_created = await User.create({
username: "userteste",
password: "password"
});

};

最佳答案

回答可能晚了,但我刚刚找到了解决方案

这个问题发生在我身上,因为我对数据库进行了更改。

所以你必须先删除表并重新创建它。

sequelize
.sync()
.then(() => {
//something here
})
.catch((e) => console.log(e));



我们使用上面的代码来创建数据库
你只需要删除表如下

sequelize
.sync()
.then(() => {
//something here
return sequelize.drop();
})
.catch((e) => console.log(e));

关于node.js - SequelizeDatabaseError : SQLITE_ERROR: no such table: Users,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58710844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com