dub*_*c15 5 postgresql ruby-on-rails heroku amazon-web-services amazon-elastic-beanstalk
我是系统新手,正在寻找有关如何将整个Rails应用程序从Heroku迁移到AWS(弹性beantalk)的一些常规指导。我很少使用Heroku服务(除了sendgrid之外)。我最大的障碍是应用程序本身的集成和数据库的迁移(将从heroku postgresql迁移到AWS RDS postgresql)。
希望从那些经历了相同迁移的人那里获得任何见解。谢谢!!!
我还没有迁移到 AWS,但我已经完成了Heroku
> Rackspace
,我会告诉你,如果你正确排序了依赖项,这会相对简单。
有两个现实问题:
该应用程序可以通过 进行处理GIT
。数据库必须手动传输。
--
应用程序传输
应用程序传输是最简单的部分 - 毫无疑问,git
由于您使用 Heroku,您已经调用过。这意味着您只需git
在外部服务器上进行设置即可。
请注意 - 如果您有任何基于 Heroku 的资产依赖项,您需要将它们保存在本地并进行迁移。CDN
以及其他依赖于 Heroku 的存储库 - 应备份并转移到新主机。这可能不是必要的,但需要记住。
对于传输本身,这里有一个关于 GoRails 的非常好的教程。
简而言之,您必须将服务器设置为通过 Web 服务器应用程序 ( nginx
/ apache
) 接受传入请求。然后,您可以设置一个单独的git
存储库,您可以将应用程序推送到其中。
我将保留详细信息,只是说这是我们转移到 RackSpace 时使用的代码:
server {
listen [ip];
root /var/www/viewgit;
server_name git.domain.com;
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9001;
}
location ~ ^projects/.*/(HEAD|info/refs|objects/info/.*|git-upload-pack)$ {
root /var/www/viewgit/projects;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param PATH_INFO $uri;
fastcgi_param GIT_PROJECT_ROOT /var/www/viewgit/projects;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
}
Run Code Online (Sandbox Code Playgroud)
这将允许您将另一个存储库添加remote
到本地应用程序代码中:
git add remote X http://git.yourdomain.com/your_code.git
Run Code Online (Sandbox Code Playgroud)
这样做将为您提供一种将代码推送到新服务器的直接方法。我不会讨论post-receive
钩子等,以及如何使用它们来使其正常工作。
--
数据库
数据库稍微棘手一些,但并非不可克服。
执行此操作的方法是使用pg:backups
,它本质上创建数据库的“转储”,允许您加载它并将其部署到其他地方。
这对于 PGSQL > MYSQL 来说要困难得多。但由于 Heroku 无论如何都使用 Amazon 自己的数据库,所以我认为您不会有问题。
您最好按照此处的说明下载 heroku DB。
下载数据库后,您必须将其压缩并上传到 AWS 服务中。如前所述,我在这方面没有丰富的经验,所以我只想说,如果您需要任何帮助,我会为您编写更新。
归档时间: |
|
查看次数: |
819 次 |
最近记录: |