Ruby on Rails新手

时间:2009-02-02 20:22:49

标签: ruby-on-rails ruby web-applications backup

我继承了一个有问题的Ruby on Rails应用程序。我正在浏览一些关于Rails的书籍,但还没有看到一些问题的答案。

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

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

  3. 谢谢,

    迈克尔

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

8 个答案:

答案 0 :(得分:3)

  

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

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

答案 1 :(得分:3)

备份我发现的代码的好方法是使用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的所有计算机上共享存储库)

答案 2 :(得分:2)

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

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

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

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

答案 3 :(得分:1)

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

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

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

rake rails:freeze:gems

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

答案 4 :(得分:0)

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

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

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

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

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

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