【发布时间】:2010-07-30 07:25:52
【问题描述】:
我正在从 ASP.NET MVC 切换到 RoR。是的,迁移很酷,但我不需要在我的 Web 应用程序中使用不同的数据库。 Postgresql 会做得很好。
那么,如果我使用 PGAdmin 来创建和管理我的数据库和架构并避免所有这些花哨的 migrate、rake 等,可以吗?
更新
谢谢大家!现在我更好地理解了迁移是什么,以及为什么我应该使用它们。
【问题讨论】:
我正在从 ASP.NET MVC 切换到 RoR。是的,迁移很酷,但我不需要在我的 Web 应用程序中使用不同的数据库。 Postgresql 会做得很好。
那么,如果我使用 PGAdmin 来创建和管理我的数据库和架构并避免所有这些花哨的 migrate、rake 等,可以吗?
更新
谢谢大家!现在我更好地理解了迁移是什么,以及为什么我应该使用它们。
【问题讨论】:
我不认为这就是迁移的意思。
Rails(和其他框架)中的迁移是一种在同一数据库运行多个版本时可以用来更新数据库架构的方法
例如,您可能有两个数据库,一个在生产服务器上运行,另一个在本地运行用于开发。经过几天的编码,您的本地开发数据库可能看起来有点不同。通过迁移,您可以简单地将代码推送到生产服务器,然后运行迁移以自动更新您的生产数据库,使其与您在本地用于开发的数据库保持同步。
所以,回答您的问题,是的,这没关系,但是当您必须维护数据库的多个版本时,您可能无法获得一些迁移细节。
【讨论】:
必须同意 charkit,但有一个(而不是两个)重要说明为什么您应该使用迁移:迁移不构成模型定义。它们分别存储在文件schema.rb 中。这定义了数据库的行和表。查看文件时,您会发现以下几行:
此文件是根据数据库的当前状态自动生成的。请不要编辑此文件,而是使用 Active Record 的迁移功能逐步修改您的数据库,然后重新生成此架构定义。
第二个原因是为了测试:您可以轻松地设置一个测试数据库来运行您的所有测试,而无需接触“真实”数据库。我知道在开发的时候,这不是一个大问题,但一段时间后它会变得更加重要。
所以,是的,可以使用 PGAdmin 创建所有与数据库相关的内容,但您不应忘记始终保持架构文件为最新并提出测试解决方案。
【讨论】:
通过迁移,您可以在 Ruby 中开发数据库架构,这通常是独立于数据库的。
简而言之,将20 minutes or so 用于真正获得迁移和它们增加的价值。然后确定是否要放弃它们。奇怪的是,我在开始我的第一个 MVC 项目之前就学习了 Rails。我最想念的一件事是迁移。
从技术角度来看,没有它们你应该没问题。
【讨论】: