Node.js Knex.js insert可以在本地工作,但不能在Heroku部署上工作

Node.js Knex.js insert可以在本地工作,但不能在Heroku部署上工作,node.js,postgresql,heroku,knex.js,Node.js,Postgresql,Heroku,Knex.js,在我的Express应用程序中,当用户通过post请求发送数据时,我想创建一个新记录。当我在本地运行它时,它可以工作,但在部署的站点中它不工作 我正在使用knex.js。以下是处理post请求的路由: router.post('/', function(req, res) { newBook = { title: req.body.title, genre: req.body.genre, description: req.body.description,

在我的Express应用程序中,当用户通过post请求发送数据时,我想创建一个新记录。当我在本地运行它时,它可以工作,但在部署的站点中它不工作

我正在使用knex.js。以下是处理post请求的路由:

router.post('/', function(req, res) {
  newBook = {
    title: req.body.title,
    genre: req.body.genre,
    description: req.body.description,
    cover_url: req.body.cover_url
  }
  Books().insert(newBook, 'id').then(function(result) {
    res.send('Created new book with id ' + result)
  })
})
以下是已部署站点上的错误日志:

未处理的拒绝错误:将值($1、$2、$3、$4)插入“books”(“cover\u url”、“description”、“genre”、“title”)返回“id”-重复键值违反唯一约束“books\u pkey”

在本地服务器上,请求成功,我在数据库中看到了新记录。你知道为什么会有不同吗?谢谢你的帮助!让我知道其他信息是否有用

  • 部署到Heroku
  • node.js v4.2.1
  • express v4.13.1
  • knex v0.9.0
  • 第4.4.3页

id字段是否自动递增?我猜,您在本地和Heroku上设置数据库的方式不同。那可能是唯一的原因。你是怎么解决这个问题的?