已在MySQL数据库中将表从users
重命名为user
。在Express
我正在运行Sequelize
并为旧users
表创建了一个架构。重命名表后,代码中的所有内容都从users
更改为user
,Sequelize
仍在查找名为users
的表,即使表名已在架构。
User = db.sequelize.define('user', {
first_name: Sequelize.STRING,
last_name: Sequelize.STRING,
email: Sequelize.STRING,
password: Sequelize.STRING,
role: Sequelize.STRING,
created_at: Sequelize.DATE,
updated_at: Sequelize.DATE
});
尝试运行此操作以使用Sequelize
生成的表格覆盖表格,并且仍然创建了一个名为users
User.sync({force: true}).then(() => {
// Table created
return User.create({
firstName: 'test',
lastName: 'test',
email: 'test@example.com',
password: 'password'
});
});
还有其他人经历过同样的事吗?我还缺少其他一些配置吗?这是我在创建第一个表时首先做的。
答案 0 :(得分:5)
默认情况下,对表名称进行复数化,设置freezeTableName: true
可以更改这种行为。
User = db.sequelize.define('user', {
first_name: Sequelize.STRING,
last_name: Sequelize.STRING,
email: Sequelize.STRING,
password: Sequelize.STRING,
role: Sequelize.STRING,
created_at: Sequelize.DATE,
updated_at: Sequelize.DATE
}, {
freezeTableName: true
});
答案 1 :(得分:1)
自从我使用Sequelize框架以来已经好几年了,但我非常确定该框架默认具有多个表名的概念。
从内存中,需要在create
中提供配置以防止这种情况发生 - 因此,结合您的非复数表格名称,您还需要指定freezeTableName: true
。
看起来文档说明了这一点:
http://docs.sequelizejs.com/manual/tutorial/models-definition.html#configuration
答案 2 :(得分:0)
最近的续集版本允许您执行此操作
<div class="w-100" style="background-color: white; z-index: 0;">
<div class=" d-flex justify-content-center pt-2">
{{ $products->links() }}
</div>
</div>