2017-05-21 52 views
0

我已經爲自己創建了一個示例項目,以在Google App Engine上使用Sequelize嘗試Node.js。在部署到App Engine後運行Sequelize遷移

我可以在本地運行該項目,當我把它部署到App Engine的它工作正常,但是gcloud app deploy

我收到以下錯誤:

{ 
    name: "SequelizeDatabaseError", 
    message: "ER_NO_SUCH_TABLE: Table 'sql8175762.Likes' doesn't exist", 
    parent: { 
     code: "ER_NO_SUCH_TABLE", 
     errno: 1146, 
     sqlState: "42S02", 
     index: 0, 
     sql: "SELECT `id`, `code`, `likes`, `createdAt`, `updatedAt` FROM `Likes` AS `Likes`;" 
    }, 
    original: { 
     code: "ER_NO_SUCH_TABLE", 
     errno: 1146, 
     sqlState: "42S02", 
     index: 0, 
     sql: "SELECT `id`, `code`, `likes`, `createdAt`, `updatedAt` FROM `Likes` AS `Likes`;" 
    }, 
    sql: "SELECT `id`, `code`, `likes`, `createdAt`, `updatedAt` FROM `Likes` AS `Likes`;" 
} 

那是因爲Sequelize遷移犯規但是跑我在npm啓動命令中指定它:

"scripts": { 
    "deploy": "gcloud app deploy", 
    "start": "npm install & sequelize db:migrate & NODE_ENV=production node ./bin/www" 
}, 

我從來沒有使用過應用程序引擎進行節點部署,我甚至不確定步驟我說的是正確的部署,遷移和運行應用程序。

有沒有人有關於此的任何提示?

回答

0

我不知道你的設置,但是你有sequelize-cli軟件包依賴項,你是否也嘗試過在你的根目錄中添加一個.sequelizerc文件,併爲你的配置,遷移和模型添加路徑?示例:

var path = require('path'); 

module.exports = { 
    'config': path.resolve('./', 'config/config.js'), 
    'migrations-path': path.resolve('./', 'src/server/migrations'), 
    'seeders-path': path.resolve('./', 'src/server/seeders'), 
    'models-path': path.resolve('./', 'src/server/models') 
};