2016-06-29 110 views
1

我目前正在学习Rails并构建一个博客应用程序。我无法将自己的头围绕迁徙。我从我的read中假设,您可以使用迁移将列,表添加到数据库。但是为什么这个重要/不能通过版本控制来完成?迁移vs版本控制

我感谢任何反馈/指导。我对rails/ActiveRecord很新,所以请耐心等待。

+0

你是什么意思的“版本控制”?一个git仓库当然不会更新Postgresql数据库的模式。 – Thilo

+1

嗨@Thilo,我想我只是从我对阅读的解读中感到困惑。 迁移直接处理使用db进行更改,其中版本控制是完全独立的,并且指的是在处理代码时跟踪提交。我现在在球场吗? –

+0

https://teamtreehouse.com/community/difference-between-migration-and-git – Thilo

回答

1

迁移数据库的工作,因为Git仓库对代码有效。 它跟踪在开发应用程序期间对数据库所做的更改。

如果没有迁移,您将不得不手动在您共享代码的每个设备上执行所有更改。

+1

谢谢安德烈,我想一个愚蠢的问题和完全的误解。 确认: Migrations =“数据库的版本控制” Git =“代码的版本控制”? 非常感谢。 –

+0

没错。这是一个公平的问题和一个概念,将来会真正帮助你。 –

+0

那么,“迁移”是由你想保存在源代码库中的文件定义的。但是,它们在应用于数据库时也会产生结果(如跟踪表)(这可能会在部署期间自动发生,这是此处承诺的重要组成部分)。 – Thilo

1

迁移和版本控制是两个完全不同的东西。迁移不保持状态。迁移是改变你的数据库/模型的一种方式,它们比你说的“添加列”要多得多。

每个人在开始时应该检查rails guides

版本控制不只是维护您的数据库结构。假设您更改数据库,视图和控制器并决定,然后决定只想撤消数据库更改。恢复您的版本控制将撤销所有更改。这很糟糕我认为