我遇到一个错误,当我在对数据库的节点中执行get请求时,我得到一个空数组。因此,我查看了控制台日志,它说它将删除所有存在的表,然后创建它们,但种子文件未运行。我可以在服务器外部运行“ npm run seed”,它将为数据库添加种子,但是在运行节点server.js时,它会不断删除而不是添加种子。我什至尝试过将种子路径放置到packages.json中的“ start”:使种子和服务器都在start上运行,但是没有运气。该应用程序运行良好,但我的团队成员之一不小心将其推到了主目录上,它弄乱了该应用程序,我不知道这是怎么回事,因为它在git messup之前就可以正常工作了。我现在创建了一个新的仓库,并遇到了同样的问题。
//package.json
"start": "node server.js ./seeds/seed-db.js"
//seed-db.js
const db = require("../models");
const productSeeds = require("./seed-products.json");
db.sequelize.sync({ force: true }).then(function() {
db.Market.bulkCreate([
{
name: "Cotton Mill Farmers Market",
address: "401 Rome St.",
city: "Carrollton",
state: "GA",
zip: "30117"
}
]).then(function(dbMarkets) {
//COTTON MILL FARMERS MARKET STOCK
dbMarkets[0].createProduct(productSeeds.broccoli).then(function() {
db.sequelize.close();
});
dbMarkets[1].createProduct(productSeeds.broccoli).then(function()
{
db.sequelize.close();
});
});
});
//控制台
执行(默认):如果存在MarketProduct
,则删除表;
执行(默认):如果存在Product
,则删除表;
执行(默认):如果存在Markets
,则删除表;
执行(默认):如果存在Markets
,则删除表;
执行(默认):如果不存在Markets
(id
整数非空auto_increment,name
VARCHAR(255),address
VARCHAR(255),{{1} } VARCHAR(255),city
VARCHAR(255),state
整数,主键(zip
))ENGINE = InnoDB;
执行中(默认):从id
到Markets
显示索引
执行(默认):如果存在grocerEZ_db
,则删除表;
正在执行(默认):如果不存在Product
(Product
整数非空auto_increment,id
VARCHAR(255),name
ENUM('meat','fruits' ,'vegetables','misc'),category
TINYINT(1),主键(isOrganic
))ENGINE = InnoDB;
执行中(默认):从id
到Product
显示索引
执行(默认):如果存在grocerEZ_db
,则删除表;
执行(默认):如果不存在MarketProduct
(MarketProduct
DATETIME NOT NULL,createdAt
DATETIME NOT NULL,updatedAt
INTEGER,MarketId
INTEGER,PRIMARY KEY时创建表(ProductId
,MarketId
),外键(ProductId
)参考MarketId
(Markets
)在删除级联上更新级联,外键({{1} })在更新级联上删除级联上的引用id
(ProductId
)ENGINE = InnoDB;
执行中(默认):从Product
到id
显示索引
在PORT 3000上监听应用程序
答案 0 :(得分:0)
只是改变
var value = 10;
if(value == 10) {
console.log("Evaluate");
}
else {
console.log("Hello");
}
到
db.sequelize.sync({ force: true }) // <-- Forces table to drop and create again
如果force为true,则每个模型将在存在之前运行DROP TABLE IF EXISTS 尝试创建自己的表
更改表格以适合模型。不建议用于生产。 删除已删除或其类型已更改的列中的数据 模型。
注意:
db.sequelize.sync,当您想要 根据您所做的更改创建/修改表 模型,建议将其放在单独的文件中并在运行时运行 是必须的。
这是应该通过检查连接而不是通过运行来运行查询的方式 同步
db.sequelize.sync({ force: false , alter : true })