1

最近,我使用Elastic Beanstalk在 Amazon EC2 上托管了我的 Ruby on Rails 应用程序。除了我的seeds.rb 文件外,一切正常。我的seeds.rb 文件在托管时没有执行。我也在使用ActiveAdmin,我在我的种子.rb 文件中定义了第一个管理员。

如何通过 rails 控制台在 Amazon 上创建第一个管理员用户?有没有办法在 Amazon EC2 上打开 Rails 控制台?我正在尝试使用腻子来做到这一点,但不知道该怎么做。请给我一些指示..

4

3 回答 3

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”结合起来。

于 2013-06-30T12:26:10.117 回答
3

您需要创建密钥对来访问亚马逊实例(我认为您已经拥有)。确保在当前选定的安全组中启用了 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',假设您正在登台环境中运行应用程序。

于 2013-06-21T10:07:28.813 回答
1

如果您在这里并且上述解决方案对您不起作用。

除了使用 benchwarmer 在上面这个答案中提供的命令之外:

https://stackoverflow.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 控制台(仪表板)中为您的环境在配置面板中检查所有这些。

于 2020-09-24T14:30:53.127 回答