【问题标题】:Ruby on Rails : Development vs Production database - where to enter data?Ruby on Rails:开发与生产数据库 - 在哪里输入数据?
【发布时间】:2013-11-28 18:14:13
【问题描述】:

我对 Rails 很陌生。

我对开发和生产数据库感到困惑。我在我的所有环境中都使用 postgreSQL,并使用 heroku 来托管网站。我能够将迁移和种子推送到我在 heroku 上的生产数据库。但是,我通过 localhost:3000 上的浏览​​器输入了相当多的新数据。我花了很长时间试图弄清楚如何将这些数据获取到heroku,但最终通过销毁然后创建一个新的空数据库并将我的开发数据库推送到它而成功。现在我在 heroku 上的站点与使用 rails 服务器的 localhost:3000 相同。我修改了 database.yaml 文件,使开发数据库和生产数据库现在同名(开发数据库的名称)。但我不认为这意味着如果我通过 localhost:3000 对开发数据库进行更改,它们将在 heroku 站点上自动更改。我对 heroku 上的颜色(深红色、栗色)感到非常困惑——这些数据库与我在 yaml 中指定的不同吗?而且我不知道我现在是否应该在 localhost:3000 站点或 heroku 站点上输入新数据。对不起,如果这是非常业余的。谢谢。

【问题讨论】:

标签: ruby-on-rails postgresql heroku development-environment production-environment


【解决方案1】:

您对 Rails 如何使用数据库感到困惑

让我解释一下:


Rails 使用MVC (Model View Controller) 编程模式用数据库数据填充您的应用程序。 Rails 使用这种模式是因为它是最高效且可扩展的,它通过从用户那里获取命令(点击链接、输入数据)、发送到控制器并在模型上执行请求来工作

所有 Rails 应用程序的工作方式是接受命令(您定义的),并使用它们执行数据库操作,然后用新数据重新填充应用程序

Rails 旨在与单个数据库一起使用,database.yml 文件用于指定哪个数据库(最好使用不同的数据库进行开发、暂存和生产——出于性能、效率和其他问题)

这意味着数据库名称并不重要 - 重要的是使用rake db:migrate 系统使两个数据库保持最新状态,从而为所有数据库提供所需的列,以使您的应用程序正常运行


在回答您的问题时,您拥有的数据对于开发和生产将有所不同。你的生产环境应该是“神圣的”,一切都被编译和高效运行

生产环境用于处理自己的数据,应通过您的应用程序填充。开发和生产数据库的原因是确保您在尝试将其应用到生产数据库之前可以在开发环境中“出错”

如果您告诉我们更多有关您的具体问题的信息,我们将能够给出更精确的答案

【讨论】:

  • 听起来当我输入新数据(不是通过迁移的新表属性)时,我应该通过 heroku 上的生产数据库而不是通过 localhost:3000 上的开发数据库来完成。但是,当我对网站设计进行更改时,我会在 localhost:3000 上评估这些更改。所以数据没有同步。我认为通过将我的生产数据库和开发数据库命名为相同(在 database.yml 文件中),这将使其同步。我不知道为什么不是这样。
  • 如果你想使用完全相同的数据,当然你可以使用相同的数据库进行生产和开发——这是最简单的方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多