【发布时间】:2016-01-29 09:17:29
【问题描述】:
我使用 Rails 创建了一些表格。现在我想修改其中一些的结构。我知道可以使用 rails 迁移来完成。但是我想知道如果我使用 mysql rdbms 修改模式是否会导致 rails 应用程序出现异常?
【问题讨论】:
标签: mysql ruby-on-rails database-migration
我使用 Rails 创建了一些表格。现在我想修改其中一些的结构。我知道可以使用 rails 迁移来完成。但是我想知道如果我使用 mysql rdbms 修改模式是否会导致 rails 应用程序出现异常?
【问题讨论】:
标签: mysql ruby-on-rails database-migration
如果您决定重新创建/重新迁移数据库,通过迁移进行此类更改的优点是不会丢失更改。
它也可用作文档。想象一下,如果你的同事偷偷改变了一些表格(然后你们都忘记了)。
从技术上讲,直接在数据库中更新模式应该可以,但不要这样做。
【讨论】:
为了补充 Sergio 的观点,您错过了一个简单的事实 - Rails' migrations 创建著名的 db/schema.rb 文件 - 您的迁移从中提取所有数据。
schema.rb 的重要性被忽视了 - 它是您的应用程序中最重要的方面之一。
db/schema.rb
架构为您的所有迁移提供了数据库的版本,以供更改/添加。每次执行迁移时,Rails 都会更改架构文件以确保它具有存储在文件中的数据库的“蓝图”。
该架构然后能够使用诸如rake db:schema:load 之类的方法重建数据库(仅推荐用于新安装 -- 删除以前的数据)
因此,虽然使用数据库自己的本机工具设置数据库没有问题,但我建议不要这样做。您需要保持迁移速度,以便 Rails 可以根据其架构构建适当的表。
【讨论】: