我正在玩在“中”上找到的代码,并更改了模型中表格的名称,形式为:
const connection = require ('../connection');
const { Sequelize } = connection;
const User = connection.define('user', {
id: {
type: connection.Sequelize.UUID,
defaultValue: connection.Sequelize.UUIDV4,
primaryKey: true
},
name: Sequelize.STRING,
password: Sequelize.STRING
});
module.exports = User;
收件人:
const connection = require ('../connection');
const { Sequelize } = connection
const User = connection.define('Users', {
id: {
type: connection.Sequelize.UUID,
defaultValue: connection.Sequelize.UUIDV4,
primaryKey: true
},
name: Sequelize.STRING,
password: Sequelize.STRING
});
module.exports = User;
我还更改了数据库中表的名称。
然后我决定返回原始名称。 但是从那以后,每次我运行整个代码时,我的数据库都会显示2个表:
+--------------------+
| Tables_in_database |
+--------------------+
| user |
| users |
+--------------------+
请注意,我已经将表名从'user'更改为'Users'而不是'users',但是创建的表是'users'。
尽管如此,我还是删除了'users'表,但是如果我运行代码,则会重新创建它。
我到处都看过,似乎没有对“用户”表或模型的引用。 阻止创建表的唯一方法是从index.js中删除以下行:
connection.sync({force: false});
为什么会发生这种情况?如何防止即使在connection.sync仍然存在的情况下也无法创建表?
答案 0 :(得分:1)
我认为这可以为您提供帮助:
const Bar = sequelize.define('bar', { /* bla */ }, {
// disable the modification of table names; By default, sequelize will automatically
// transform all passed model names (first parameter of define) into plural.
// if you don't want that, set the following
freezeTableName: true,
// define the table's name
tableName: 'my_very_custom_table_name',
})
更多详细信息: DO READ