我正在将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
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;
userModel.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),unique: true
},password: {
type: Sequelize.STRING(20),allowNull: false
}
});
运行:顺序迁移:创建--name用户表
我得到了文件
'use strict';
module.exports = {
up: (queryInterface,Sequelize) => {
return queryInterface.createtable('users',{
id: {
type: Sequelize.INTEGER(11),unique: true
},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","database": "database_test","dialect": "mysql","operatorsAliases": false
},"production": {
"username": "root","database": "database_production","operatorsAliases": false
}
}
这是用户模型创建用户的文件
authenticationController.js
const User = require("../models/userModel");
exports.createUser = async (req,res,next) => {
const user_created = await User.create({
username: "userteste",password: "password"
});
};