如何在heroku

时间:2015-07-22 11:31:10

标签: ruby-on-rails postgresql heroku

我添加了heroku postgres插件。

DATABASE_URL类似于postgres:// xxxxxxxxx:xxxxxxxx@xxxxxxxxx.compute-1.amazonaws.com:5432 / ddo2ahvosfggq

我希望数据库名称与my_app_database类似。我想将ddo2ahvosfggq重命名为my_app_database。

我该怎么做?

我可以使用ALTER DATABASE吗? http://www.postgresql.org/docs/9.1/static/sql-alterdatabase.html

StackOverflow How to rename database in Heroku?

中已经存在一个问题

但答案是重命名应用程序。我不知道重命名应用程序如何工作?

如果my_app是我的heroku应用程序的名称。下面的DATABASE_URL会起作用吗?

postgres的:// XXXXXXXXX:xxxxxxxx@xxxxxxxxx.compute-1.amazonaws.com:5432 / my_app应用

2 个答案:

答案 0 :(得分:5)

您无法。数据库即服务(DBaaS)和数据库名称无法自定义。您只需从服务中获取并使用即可。由于它不是面向用户的Web应用程序的详细信息,因此漂亮的名称是没有用的。 为什么要这么麻烦?

您可以对数据库执行的大多数操作都列在on Heroku Postgres website中。你可以:

  • 重新生成凭据(不包含数据库名称,仅包含用户名和密码)
  • 擦除数据库(也不会重命名数据库,只需删除表格)
  • 再创建一个数据库(但它会随机命名,就像所有其他数据库一样)

答案 1 :(得分:2)

您真的不需要在Heroku上输入生产数据库的名称。

Heroku有一个post commit钩子,它将生产数据库详细信息写入/config/database.yml

如果您确实需要在没有模型的情况下查询数据库,则可以通过以下方式建立连接:

ActiveRecord::Base.establish_connection
query = ActiveRecord::Base.connection.execute('SELECT * FROM foo;')