我遇到了一个错误,当我在节点中对数据库执行get请求时,得到的是一个空数组。因此,我查看控制台日志,它会删除所有表(如果存在),然后创建它们,但种子文件没有运行。我可以在服务器外部运行“npm run seed”,它将为数据库播种,但当我运行node server.js时,它会一直丢弃而不播种。我甚至尝试将种子路径放在packages.json“start”中:使种子和服务器都在start上运行,但没有成功。应用程序运行得很好,但是我的一个团队成员不小心推到了主应用程序上,它把应用程序搞砸了。我不知道是什么搞砸了,因为它在git搞砸之前就已经运行了。我已经创建了一个新的回购,但现在得到同样的问题。
//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
整数非空自动增量, name
瓦尔查尔(255), address
瓦尔查尔(255), city
瓦尔查尔(255), state
瓦尔查尔(255), zip
整数,主键( id
))引擎=innodb;执行(默认):显示索引自 Markets
从 grocerEZ_db
执行(默认):删除表(如果存在) Product
; 执行(默认):如果不存在,则创建表 Product
( id
整数非空自动增量, name
瓦尔查尔(255), category
枚举('肉','水果','蔬菜','杂项'), isOrganic
tinyint(1),主键( id
))引擎=innodb;执行(默认):显示索引自 Product
从 grocerEZ_db
执行(默认):删除表(如果存在) MarketProduct
; 执行(默认):如果不存在,则创建表 MarketProduct
( createdAt
日期时间不为空, updatedAt
日期时间不为空, MarketId
整数, ProductId
整数,主键( MarketId
, ProductId
),外键( MarketId
)参考文献 Markets
( id
)删除级联更新级联时,外键( ProductId
)参考文献 Product
( id
)on delete cascade on update cascade)引擎=innodb;执行(默认):显示索引自 MarketProduct
从 grocerEZ_db
端口3000上的应用程序侦听
1条答案
按热度按时间5anewei61#
只要改变
到
文件编号:
如果force为true,则每个模型将在尝试创建自己的表之前运行drop table(如果存在)
改变表格以适应模型。不建议用于生产。删除模型中已删除或其类型已更改的列中的数据。
注:
如果您想根据对模型所做的更改创建/修改表,建议将其放在单独的文件中,并在需要时运行。
这是通过检查连接而不是通过运行同步来运行查询的方式,