【问题标题】:How to edit tables and columns and rows for databases (psql) on heroku?如何在heroku上编辑数据库(psql)的表、列和行?
【发布时间】:2018-06-19 23:06:10
【问题描述】:

我有一个在 Heroku 上运行的 Rails 5 应用程序。 我已经能够使用 $psql 命令在本地环境 (c9) 上修改数据库。

我在 $psql 控制台上删除了用户、文章和 cmets

我运行 rails db:migrate 并没有在本地删除任何问题。 我成功地将更改推送到 git,没有任何问题。 我成功地将更改推送到heroku,没有任何问题。 我在本地环境中运行 rails db:migrate 没有问题。

当我运行 rails db:migrate 时,它​​说 Heroku psql(生产环境)数据库上仍然存在“用户”列。

所以澄清一下:

我不太确定用 Heroku 在轨道上的 psql 数据库中修改表、它们的列和行的方法(或者甚至是正确的方法)。 在将 Rails psql 数据库行和列部署到 Heroku 上的现有 URL 后,如何正确删除它?

【问题讨论】:

  • 所以你(应该)只剩下connects 表了吗?里面有你关心的数据吗?

标签: ruby-on-rails postgresql heroku


【解决方案1】:

使用 Rails 迁移编辑和删除列:http://edgeguides.rubyonrails.org/active_record_migrations.html#using-the-change-method

使用迁移时,将使用 rake db:migrate 在开发环境和生产环境中删除列。

您可以通过多种方式删除行,通过 Rails 应用程序或在 Rails 控制台中使用 ActiveRecord,或与数据库交互的其他方式。


根据下面的顶级评论编辑

【讨论】:

  • 您确定“如果您手动删除它们,它们在运行迁移后仍将存在于架构中。”部分?执行rake db:migrate 应该根据数据库的结构(在运行任何迁移之后)重新生成db/schema.rb,无论迁移说什么或做什么。
  • 不,我不确定,感谢您的评论。我没想到会这样。因此,如果您随后运行rake db:reset,那么架构会返回反映迁移吗?架构不反映迁移对我来说似乎是个坏主意,我认为这就是导致原始帖子中问题的原因。
  • schema.rb 反映了 Rails 认为数据库当前的样子,迁移只是关于如何从一个数据库结构到另一个数据库结构的临时说明。如果你db:reset,数据库将根据schema.rb 的样子重建,而不是迁移必须说的。 OP 的问题是他们手动更改了数据库架构,最终得到了一个新的schema.rb,并且无法将他们的生产系统db:migrate 迁移到新架构,因为没有迁移。
  • 我明白了,很高兴知道。我将把答案留在这里,因为我认为它回答了如何从数据库中编辑和删除行和列的问题,尽管无法解决 OP 的特定问题。
猜你喜欢
  • 2017-03-06
  • 1970-01-01
  • 2013-06-13
  • 2020-08-22
  • 2019-12-01
  • 1970-01-01
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多