我有一個種子檔案,位于./seeds/index.js,當本地呼叫時,將創建表格,并在MySQL資料庫中播種資料。
const sequelize = require("./config/connection") 。
const User = require("./models/User") 。
const Post = require("../models/Post")。
const Comment = require("./models/Comment") 。
const userData = require("./user-seeds.json") 。
const postData = require("./post-seeds.json") 。
const commentData = require("./comment-seeds.json") 。
//用測驗資料創建表和種子。
const seedDatabase = async ( ) => {
await sequelize.sync({ force: true })。)
await User.bulkCreate(userData, {
individualHooks。true,
returning: true。
});
await Post.bulkCreate(postData, {
individualHooks: true,
returning: true。
});
await Comment.bulkCreate(commentData, {
individualHooks: true,
returning: true。
});
process.exit(0)。
};
seedDatabase()。
我希望一旦應用程式部署在heroku上,也能運行這個程式。
我試著運行heroku run ./seeds/index.js,但得到Permission denied。
我還創建了一個Procfile并添加了以下一行。worker: node ./seeds/index.js,看起來它在部署時運行。

但是,資料庫仍然是空的,沒有被播種。
我如何在部署到Heroku期間或之后使用node.js檔案對MySQL資料庫進行播種?
編輯:我應該補充一點,我知道資料庫已經連接到了應用程式,因為如果應用程式啟動時表不存在,那么就會被創建。然而,播種仍然沒有發生。
編輯2:我的Procfile的內容是錯誤的。我認為它應該是 worker: node ./seeds/index.js 然而,資料仍然沒有被填充到資料庫中。
uj5u.com熱心網友回復:
heroku的命令是畸形的。它應該是。heroku run node ./seeds/index.js。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/331024.html
標籤:
