我来自客户端语言编程背景,特别是ActionScript。因此,虽然我很熟悉代码,但我的服务器端经验很少,特别是数据库的版本控制以及rails应用程序本身。然后是命令行,这是一个完全神秘的。
现在我正在构建我的第一个rails应用程序,在本地计算机上看起来相当不错。我想这是我开始放置一些版本控制的时候了。大多数书都刷过版本控制的东西,但它似乎比构建rails应用程序更复杂,这是正常的。所以我的问题是:
答案 0 :(得分:2)
你可以简单地学习这种东西 环顾四周,尝试一下 出来,没有替代品。其他 只能建议哪种工具最好 为了你想做什么,但是 每个人都有自己的看法 所以..耶..就这样做!
我个人不知道怎么做 版本控制数据库,但是 控制你的一般版本 代码我会建议“git”(链接 here!)。这是最简单的之一 和最流行的版本控制 周围的系统。最初设计 作者:Linus Torvalds,现在 由...维护。
是/否,具体取决于您的定义方式 复杂。要创建版本 使用“git”控制代码, 你最初会输入
git init
在代码目录中。并 将所有代码添加到git中,告诉它 密切注意变化 文件,您可以输入:
git add *
然后提交(保存你的 更改),您可以输入:
git commit -m“输入你拥有的内容 到目前为止“
那几乎就是 git,你会重复最后两个 添加和保存更改的步骤 你开发代码。所以,如果你有 你的代码都做错了 你要做的就是回顾你的 “承诺”并决定你想要的地方 回溯。
所以,那里的git非常棒 是其他人,但它不是我的好 意见。它们是:SVN,CVS。
回到控制数据库的版本,为什么要这样做? Rails有一个内置的数据库版本控件,每次更改数据库的方案时,都会记录它,所以如果你做错了什么,你总是可以恢复!你的意思是备份你的数据库数据?因为如果它是MySQL,你总是可以在xml中导出它,而版本控制那个xml文件!
答案 1 :(得分:2)
获得像Subversion或Git这样的版本控制系统很容易。
困难的部分是弄清楚如何使它全部与数据库一起工作。它与代码不完全相同。
例如,您是否只存档架构历史或数据? (可能是前者,但你永远不知道。)你将如何管理加载数据(例如,测试场景)?
Scott Ambler和Pramod Sadalange在处理agile databases方面做了一些工作。他们建议编写所有架构更改的脚本,并按顺序应用它们,以使架构达到特定版本。也许this是一个很好的起点。
答案 2 :(得分:1)
查看migrations。
答案 3 :(得分:1)
如果您对版本控制感兴趣,那么PragProg人员会有很多关于Subversion和Git(http://www.pragprog.com)的书籍,如果您想要设置自己的存储库,请查看这些书籍。颠覆书也可以免费下载(http://svnbook.red-bean.com/)。这将使您能够将代码保存在版本控制系统中(即使是个人项目,我也不会这样做)。如果您不想创建管理自己的版本控制系统,那么可以使用托管选项。
至于数据库的设置。迁移是可行的方法,但您可能会发现每个表使用一次迁移更容易(即编辑迁移,而不是为每次更改创建新迁移)。这样,您可以在一个位置跟踪所有表格更改。不是在Rails中构建东西的传统方式,但它有一些优点。
您必须管理的一个问题是数据库中的数据。如果您上线并决定回滚数据库,您将丢失所有数据,因此请投资数据库的备份/恢复工具。
一旦你有版本控制,它通常很容易使用和管理。如果您使用的是IDE,它可能已集成到您的版本控制系统中(特别是如果您使用的是SubVersion)。
答案 4 :(得分:0)
我不知道您需要使用git对数据库进行版本控制,如果您这样做,那么存储库将非常大。我只是定期只是转储和gzip数据库,你可以保留以供将来参考。您的应用程序架构应该在您的版本控制中是安全的,并且与您的数据库转储一起,您应该没问题。
如果您在没有源代码控制的情况下编写了一段时间。停。去了解一些版本控制,它会节省你的屁股一天。 Ruby,ActionScript,无论你在写什么,把它放在git中,或者你选择使用什么,你都会更好。在我编写任何自己的代码之前,我有一两个签入或者两个,因为我添加了我需要的几个插件等。
提前入住,经常入住,经常发布早期发布的相同理念。如果需要,你需要回滚的点越多,你也可以更好地检查你的进程,无论是发布还是作为编码器的开发。