gpt4 book ai didi

database - node.js sequelize 在迁移时没有主键

转载 作者:搜寻专家 更新时间:2023-10-30 23:26:47 25 4
gpt4 key购买 nike

这是我在 node.js 项目中的 create_user_table 迁移。

'use strict';

module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable("comments", {
content: {
type: Sequelize.STRING(20),
allowNull: false
},
lastName: {
type: Sequelize.STRING(20),
allowNull: false
}
})
},

down: (queryInterface, Sequelize) => {
return queryInterface.dropTable("comments")
}
};

运行 sequelize db:migrate 后结果如下:

sequelize db:migrate

Sequelize CLI [Node: 10.15.2, CLI: 5.4.0, ORM: 5.8.5]

Loaded configuration file "config/config.json".
Using environment "development".
== 20190507193540-create_comment_table: migrating =======
== 20190507193540-create_comment_table: migrated (0.021s)

== 20190507195058-create_user_table: migrating =======
== 20190507195058-create_user_table: migrated (0.011s)

当我在 mysql CLI 中运行 describe users; 时,该表不包含 ID?

   +----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | NO | | NULL | |
| lastName | varchar(20) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+

为了完全确定,我也试过了。

mysql> show index from users where id = 'PRIMARY';
ERROR 1054 (42S22): Unknown column 'id' in 'where clause'

最佳答案

您必须在模型和迁移文件中手动声明一个 id 字段,例如:

module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable("comments", {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
},
content: {
type: Sequelize.STRING(20),
allowNull: false
},
lastName: {
type: Sequelize.STRING(20),
allowNull: false
}
})
},

down: (queryInterface, Sequelize) => {
return queryInterface.dropTable("comments")
}
};

关于database - node.js sequelize 在迁移时没有主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56043246/

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