如何根据heroku在生产期间提供的数据库凭据更改数据库名称?

时间:2018-05-05 10:14:51

标签: heroku

Heroku提供了自己的数据库名称和其他凭据,但我的本地数据库名称不同。如何根据heroku在生产期间提供的数据库凭据更改数据库名称?

2 个答案:

答案 0 :(得分:0)

使用dotenv之类的套餐。对于你正在使用的任何语言,dotenv及其变体都可能存在。

基本上,您希望在代码中使用环境变量而不是硬编码值。所以,而不是写这样的东西:

my_database_connect('my_username', 'abc123')

你写道:

my_database_connect(process.env.DB_USERNAME, process.env.DB_PASSWORD)

Heroku已经在您的应用的“配置”标签上设置了这些环境变量。然后,对于本地开发,您将创建一个名为.env的文件,并在其中包含此文本:

DB_USERNAME=my_username
DB_PASSWORD=abc123

不要将.env提交到您的git存储库 - 它应该只存在于您开发的计算机上。现在,您的代码将在本地以及Heroku上运行,并根据其运行的环境连接到正确的数据库。

这篇文章更详细地解释了node.js,尽管这基本上是一般开发的最佳实践:https://medium.com/@rafaelvidaurre/managing-environment-variables-in-node-js-2cb45a55195f

答案 1 :(得分:0)

首先,我在Heroku上创建了一个应用程序名称。然后我通过连接到github将我的应用程序部署到heroku。

Heroku在部署应用程序后提供数据库凭据。然后我通过更改application.properties文件中的配置,通过github重新部署应用程序,如下所示:

#localhost configuration
SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.postgresql.Driver
SPRING_DATASOURCE_URL=jdbc:postgresql://localhost/transactions?useSSL=false
SPRING_DATASOURCE_USER=postgres
SPRING_DATASOURCE_PASSWORD=some_pass

#server database configuration
SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.postgresql.Driver
SPRING_DATASOURCE_URL=jdbc:postgresql://ec2-23-23-247-222.compute-1.amazonaws.com/d6kk9c4s7onnu?useSSL=false
SPRING_DATASOURCE_USER=rimjvlxrdswwou    
SPRING_DATASOURCE_PASSWORD=dd903753bc0adffb96ce541b1d55fb043472e32e28031ddc334175066aa42f69

然后你必须根据你的application.properties文件编辑配置变量,如下图所示

config_var.png