Ruby on Rails新手

我inheritance了一个有问题的Ruby on Rails应用程序。 关于Rails的一些书籍已经有一半了,但还没有看到一些问题的答案。

  1. 备份应用程序的最佳方法是什么? 我可以只使用tar -cvzf app.tgz app吗? 我还不知道该应用程序是否具有sqlite3数据库或连接到数据库服务器。

  2. 将应用程序移动到另一台服务器进行测试的最佳方法是什么? 同样,我不知道它是sqlite3还是支持它的数据库服务器。

谢谢,

迈克尔

更新 :是的,我将使用版本控制。 现在没有任何权利。 我认为我想要解决的问题是:app目录的可移动性如何; 如果我想将整个应用程序移动到另一台计算机,我是否需要随身携带其他任何东西?

我想看看Capistrano – 这是首选的部署/管理工具。

在它的核心,它将从源代码控制中获取应用程序,部署和配置目标服务器,并运行任何数据库迁移。

您可以使用它指向多个服务器(例如测试,登台和生产)。

要回答您的实际问题,您可以通过简单地复制Rails目录来移动您的应用程序(注意: 不仅仅是应用程序目录,还有父目录)。 您的数据库需要单独管理 – 在sqlite的情况下,您可以只获取文件,如果您使用MySQL,您可能会转储数据库并在下一台服务器上重新配置。

我还不知道该应用程序是否具有sqlite3数据库或连接到数据库服务器。

查看config目录中的database.yml文件。 适配器行将告诉您它正在使用的数据库。

备份我发现的代码的好方法是使用git并推送到存储在Dropbox上的裸存储库( http://getdropbox.com

工作流程是这样的(假设基于Unix的系统,如OSX,如果Windows,相应地调整路径)

创建本地应用程序并从中创建一个git repo:

 cd ~/Rails rails my_app cd my_app git init git add . git commit -m "first commit" 

然后在你的Dropbox目录上创建一个裸存储库(我使用了一个名为’git’的目录)

 cd ~/Dropbox/git mkdir my_app.git cd my_app.git git init --bare 

现在回到您的应用程序并添加Dropbox作为原点并推送到它

 cd ~/Rails/my_app git remote add origin ~/Dropbox/git/my_app.git git push origin master 

在〜/ Rails目录中进行更改后,只需按下Dropbox repo,它就会在其服务器上备份(您可以轻松地在已连接到Dropbox的所有计算机上共享存储库)

您只需复制整个目录即可。 但是,通常的做法是先将Rails安装和gems“冻结”到目录中(如果尚未完成)。 这可以确保您复制应用程序的测试服务器也具有相同版本的Rails和安装的任何gem。

如果已经完成,那么您应该有一个vendor / rails /目录。

您可以通过运行来“冻结”您的Rails:

 rake rails:freeze:gems 

您还需要确保两个主机上的Ruby相同或相似。 我在1.8.7 vs 1.9.1时遇到了麻烦 – 记住这一点。

版本控制应该是一个好的开始。 您应该立即找出什么是支持数据库,并确保您不仅有1个数据库文件/服务器,而且还有第二个用于测试的实例。 不要乱用生产数据。

要“备份”应用程序的代码,可以使用git和http://github.com 。 这为您提供了一个可以放置代码的场外区域,但我认为您必须为私有存储库付费(每月约12美元)。 或者,只需在办公室的另一个盒子上设置一个git服务器并将其托管在那里。

“数据库设置”保存在config / database.yml中,这将告诉您需要了解的有关数据库的信息。

对于这两者,我建议使用版本管理系统。 也许Subversion

这就是我所做的,出于类似的原因。

如果你查看config / database.yml中的数据库设置,你会发现正在使用的数据库。 如果它是sqlite,只需确保它是subversion存储库的一部分。

除此之外,当您在其他服务器上执行导出或结帐时,只需确保服务器可以访问数据库,无论它在何处。

GIT(或SVN)+ Capistrano代码,数据有选项:

  • 有几个用于转储应用程序数据库和资产的rails插件。 我最喜欢的是github.com/toy/dump。 您可以运行rake dump:createrake dump:restore 。 最令人兴奋的是capistrano集成 – cap dump:mirror:down下载应用程序资产和数据库,它会在本地计算机上创建您的站点的克隆。

  • 如果您需要自动备份应用程序以便好好睡觉,我建议您备份我的应用程序服务。 这是rails应用程序自动备份的完整解决方案,您只需安装其插件即可自动处理剩余的流程。 他们将备份历史记录保存数周,您可以通过浏览器进行浏览并自动恢复。