如何在 Amazon ec2 上运行 seed.rb 文件
Posted
技术标签:
【中文标题】如何在 Amazon ec2 上运行 seed.rb 文件【英文标题】:How to run seed.rb file on Amazon ec2 【发布时间】:2013-06-18 09:04:47 【问题描述】:最近,我使用Elastic Beanstalk 在 Amazon EC2 上托管了我的 Ruby on Rails 应用程序。除了我的seeds.rb 文件外,一切正常。我的seeds.rb 文件在托管时没有执行。我也在使用ActiveAdmin,我在我的seeds.rb 文件中定义了第一个管理员。
如何通过 rails 控制台在亚马逊上创建第一个管理员用户? 有什么方法可以在 Amazon EC2 上打开 Rails 控制台? 我正在尝试使用 putty 执行此操作,但不知道如何执行此操作。请给我一些指示..
【问题讨论】:
【参考方案1】:你不应该做这样的事情吗?
# .ebextensions/bundles_container.config
container_commands:
01-bundle-install:
command: "bundle install"
leader_only: true
02-bundle-db-migrate:
command: "bundle exec rake db:migrate"
leader_only: true
03-bundle-db-seed:
command: "bundle exec rake db:seed RAILS_ENV='staging'"
leader_only: true
如果需要,您还可以传递参数,或者将所有这些命令与“cmd1 && cmd2”结合起来。
【讨论】:
为我节省了很多时间。 +1【参考方案2】:您需要创建密钥对才能访问亚马逊实例(我认为您已经拥有)。确保在当前选定的安全组中启用了 ssh 访问。
您可以使用
连接到亚马逊实例ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com
然后 cd 进入应用程序目录并运行 bundle exec rake db:seed RAILS_ENV='staging'
假设您正在暂存环境中运行应用程序。
【讨论】:
我通过 SSH 成功登录。现在它显示像这样[ec2-user@ip-10-28-206-117 ~]$
但我不知道我的应用程序目录路径。我尝试运行ls
命令,但没有显示任何内容。
不工作,显示错误-bash: cd: /var/www: No such file or directory
您使用的是什么服务器?乘客?
检查这两个目录../etc/apache2/sites-enabled
和/etc/nginx/sites-enabled
您将能够在这两个目录中找到配置文件..从那里您可以检查应用程序的位置
等目录工作,但之后没有找到这样的文件和目录。【参考方案3】:
如果您在这里并且上述解决方案对您不起作用。
除了使用 benchwarmer 在上面这个答案中提供的命令之外:
https://***.com/a/17232607/1216245
我必须运行为主密钥和所有 rds 设置提供环境变量的种子命令。
bundle exec rake db:seed RAILS_ENV=production RAILS_MASTER_KEY=<your master key> RDS_HOSTNAME=<your rds hostname> RDS_PASSWORD=<...> RDS_USERNAME=<...> RDS_DB_NAME=<...> RDS_PORT=<...>
终于成功了:)
您可以在 AWS 控制台(仪表板)的环境配置面板中检查所有这些内容。
【讨论】:
以上是关于如何在 Amazon ec2 上运行 seed.rb 文件的主要内容,如果未能解决你的问题,请参考以下文章
Red5 媒体服务器:如何让 rtmp 在 Amazon EC2 上运行?
如何在 Amazon EC2 上使用 Gunicorn 设置 Nginx 代理缓冲?
如何在 Amazon EC2 上安装支持 PNG 的 GraphicsMagick?
如何在 amazon micro ec2 服务器(Amazon Linux)上安装 SVN 客户端