DML直接在PostgreSQL中为Ruby on Rails应用程序进行更改

时间:2014-05-09 18:17:04

标签: ruby-on-rails postgresql heroku heroku-postgres

直接对Rails应用程序创建的PostgreSQL数据库(使用SQL脚本甚至pgAdmin)执行DML更改有什么风险?特别是使用UPSERT或MERGE来保持第三方的数据是最新的。

这是否有可能破坏应用程序?

作为奖励问题,有没有人知道Heroku是否会授予您操作生产数据库的权限(不使用" rake db:migrate")?

1 个答案:

答案 0 :(得分:1)

我可以考虑的可能风险:如果您的模型中有很多验证,而不受数据库中约束的支持,则可以插入rails模型不接受的数据。现在,在最坏的情况下,这意味着什么:

  • 您的rails模型将始终能够检索数据,但是如果内容不符合预期,这可能会导致异常(请记住:最坏的情况)。例如。验证,检查某个数字是否在某个范围内,然后使用该数字索引数组,这可能导致零异常。
  • 检索时没有验证,但是在保存时可以进行验证,因为数据首先没有通过验证,因此无法保存数据。这对用户来说非常混乱(数据在数据库中,保存,她保存完全不相关的内容,突然数据不再保存)。

这些是风险。通常,只要确保数据一致,就可以直接插入数据:)

请注意,rails甚至足以处理DDL更改。您不必被迫使用迁移。但它极大地帮助了:))

Heroku提供远程运行rails控制台的功能。您可以使用它来更改数据。