最近,我使用Elastic Beanstalk在 Amazon EC2 上托管了我的 Ruby on Rails 应用程序。除了我的seeds.rb 文件外,一切正常。我的seeds.rb 文件在托管时没有执行。我也在使用ActiveAdmin,我在我的种子.rb 文件中定义了第一个管理员。
如何通过 rails 控制台在 Amazon 上创建第一个管理员用户?有没有办法在 Amazon EC2 上打开 Rails 控制台?我正在尝试使用腻子来做到这一点,但不知道该怎么做。请给我一些指示..
最近,我使用Elastic Beanstalk在 Amazon EC2 上托管了我的 Ruby on Rails 应用程序。除了我的seeds.rb 文件外,一切正常。我的seeds.rb 文件在托管时没有执行。我也在使用ActiveAdmin,我在我的种子.rb 文件中定义了第一个管理员。
如何通过 rails 控制台在 Amazon 上创建第一个管理员用户?有没有办法在 Amazon EC2 上打开 Rails 控制台?我正在尝试使用腻子来做到这一点,但不知道该怎么做。请给我一些指示..
你不应该做这样的事情吗?
# .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”结合起来。
您需要创建密钥对来访问亚马逊实例(我认为您已经拥有)。确保在当前选定的安全组中启用了 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'
,假设您正在登台环境中运行应用程序。
如果您在这里并且上述解决方案对您不起作用。
除了使用 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 控制台(仪表板)中为您的环境在配置面板中检查所有这些。