我有一个数据库,我将不得不用它来构建我的应用程序。它由其他人建模,但它遵循rails惯例。我可以使用Active Record轻松映射它。
我可以使用迁移对该数据库进行深刻更改,还是应该继续使用图表进行建模并将其导出?
在以前建模的数据库之上使用迁移或脚手架是一种好习惯吗?
因为在脚手架之后我经常遇到某种邪恶的错误消息,说有一个迁移试图创建一个已经存在的表。当我删除有问题的迁移时,它只会变得最糟糕。
对于这个问题:不可知是指使用任何外部建模工具(GUI SGBD工具)。
答案 0 :(得分:1)
你基本上可以去任何一条路线。您选择哪一个取决于您的开发风格。
如果你做了scrum / agile,那么就可以很好地进行迁移。
迁移基本上也是rails的重要组成部分,也是使其在开发过程中运行良好的部分之一。迁移的一个巨大好处是,您可以使用您想要的任何数据库创建应用程序,这在将其移动到其他提供商时非常有用*。但是,对于没有完全完成迁移的数据库,将有两个步骤来执行此操作 - 在迁移开始时创建初始数据库“最多”,然后继续使用它们。
迁移和脚手架在现有数据库之上是可以的。迁移正在添加(或删除)新的db内容,脚手架可以创建新的db记录(运行迁移时),它们确实有助于遵循rails标准并创建常规命名的.stub测试文件等。
当第一次习惯迁移时,错误消息和语法非常令人抓狂,但这是随着时间的推移你会变得更好的事情之一。在rails中有很多类似的东西,即学习所有的位并允许奇怪的错误消息。
帮助这个领域的工具是mySQL Workbench(obv for mysql)和rubyMine IDE这些工具中的每一个都可以让你查看一个现有的数据库,你甚至可以比较来自mySQL的ERD以及实际的表与rubyMine的“模型依赖关系图“ERD使用rails模型中的信息。
* 然而移动实时应用的实际数据是另一回事。