gpt4 book ai didi

node.js - 无法使用 Node.js 在 heroku 上创建 postgresql 表

转载 作者:行者123 更新时间:2023-12-03 22:41:56 24 4
gpt4 key购买 nike

我用 postgresql 和 node.js 创建了一个 node express 应用程序。我决定把它放在heroku上。我使用 heroku 的附加组件创建了我的 postgresql 数据库。我可以看到我的数据库(用户名/密码/uri 等)

我可以 ping heroku 应用程序,但是当我尝试创建用户时,出现 400 错误。我检查了日志,问题是我无法创建表。

这是我的 app.js,它应该使用 ORM 创建模型。

var db = require('sequelize-connect');
// Database sequelize
var connectionString;
var username;
var password;
var database;
if (process.env.NODE_ENV === 'development'){
connectionString = global.localConnectionString;
database = global.nameDatabase_development;
username = global.usernameDatabase_development;
password = global.passwordDatabase_development;
}else{
connectionString = global.productionConnectionString;
database = global.nameDatabase_production;
username = global.usernameDatabase_production;
password = global.passwordDatabase_production;
}

var sequelize = new Sequelize(connectionString);

// Model ORM configurations
var discover = path.join(__dirname, 'models');
var matcher = function (file) {
return true;
}
var orm = new db(
database,
username,
password,
{
dialect: 'postgres',
port: 5432,
force: true
},
discover,
matcher
);

我从我的 heroku 页面获得了数据库名称/用户名/密码。我是否必须在 heroku 上手动创建表?我认为 sequelize-connect 用于那个?如何在heroku上创建表?

最佳答案

我认为您应该自己处理数据库迁移,因为它与您使用的 ORM 无关。 ORM 只是一个工具,可以让您更轻松地操作 sql 数据并使您的代码更具可读性。

通常,ORM 会提供一些脚本供您迁移数据库。
在 sequelize 中,您可以查看我经常使用它的 cli 存储库。

此外,您需要在部署到 heroku 的过程中添加迁移脚本
您可以查看 here

因此,该步骤将是

  • 将您的应用程序部署到 heroku
  • heroku 开始安装你的 npm 依赖项
  • heroku 开始运行迁移脚本,例如sequelize-cli 中的 db:migrate ( 这就是你想念的 )
  • 迁移后,重新加载您的 heroku 应用程序
  • 关于node.js - 无法使用 Node.js 在 heroku 上创建 postgresql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38670538/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com