最近我使用Elastic Beanstalk在Amazon EC2上托管了我的Ruby on Rails应用程序。一切正常,除了我的seeds.rb文件。我的seeds.rb文件在托管时没有执行。我也在使用ActiveAdmin,我在我的seeds.rb文件中定义了第一个admin。
如何通过rails控制台在Amazon上创建第一个管理员用户? 有没有办法在Amazon EC2上打开Rails控制台? 我试图用putty做这个,但不知道怎么做。请给我一些指示..
答案 0 :(得分:8)
你不应该这样做吗?
# .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 :(得分:3)
您需要创建密钥对才能访问亚马逊实例(我认为您已经拥有)。确保在当前选定的安全组中启用了ssh访问。
您可以使用
连接到亚马逊实例 ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com
然后cd进入app目录并运行bundle exec rake db:seed RAILS_ENV='staging'
,假设您在暂存环境中运行应用程序。
答案 2 :(得分:1)
如果您在这里并且上述解决方案对您不起作用。
除了使用Benchwarmer上面的答案中提供的命令之外:
https://stackoverflow.com/a/17232607/1216245
我必须运行seed命令,为主键和所有rds设置提供env vars。
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控制台(仪表板)中的环境中的“配置”面板中检查所有这一切。