【问题标题】:How to rename postgres database in heroku如何在heroku中重命名postgres数据库
【发布时间】:2015-10-12 06:05:19
【问题描述】:

我添加了 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

【问题讨论】:

  • 用例是什么?
  • @RAJ 希望我的数据库有用户友好的名称
  • 这是重命名数据库ALTER DATABASE current_name RENAME TO my_app_database的语法
  • 不明白自定义数据库名称的动机是什么。仅供参考,您可以使用常量来引用您在 heroku 上的数据库,即DATABASE_URL
  • @SamuelAlexander Heroku 不要将database.yml 中提到的设置用于生产。它会自动生成所需的东西。您可以从 database.yml 中删除生产部分并推送到 heroku。 heroku 仍然可以正常工作。

标签: ruby-on-rails postgresql heroku


【解决方案1】:

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

Heroku 有一个提交后挂钩,可将生产数据库详细信息写入/config/database.yml

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

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

【讨论】:

    【解决方案2】:

    您不能。它是一种数据库即服务 (DBaaS),并且无法在此处自定义数据库名称。您只需从服务中获取并使用它。由于它不是 Web 应用程序的面向用户的详细信息,因此漂亮的名称是没有用的。 那何必呢?

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

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

    【讨论】:

      猜你喜欢
      • 2013-08-29
      • 2019-11-19
      • 2012-12-19
      • 2013-08-17
      • 1970-01-01
      • 2011-07-13
      • 2012-08-10
      • 2011-05-19
      相关资源
      最近更新 更多