【问题标题】:Cannot create production database on DigitalOcean droplet无法在 DigitalOcean 液滴上创建生产数据库
【发布时间】:2016-06-08 05:08:00
【问题描述】:

我尝试按照此页面将我的 rails 应用程序部署到 DigitalOcean。

https://www.digitalocean.com/community/tutorials/how-to-use-the-ruby-on-rails-one-click-application-on-digitalocean#configuration-details

一切正常,但我无法通过此命令创建数据库

RAILS_ENV=production rake db:create

即使我在我的应用程序文件夹中运行了这个命令

chown -R rails: /home/rails/myapp_name

这是我从命令行得到的

FATAL:  Peer authentication failed for user "rails"
.
.
.
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5, "database"=>"xxx", "username"=>"rails", "password"=>nil}

那么如何解决这个问题?

谢谢!

【问题讨论】:

  • 您用于创建数据库的用户是 rails,您是否将 postgresql 设置为拥有一个名为 rails 的超级用户?
  • ALTER USER youruser WITH SUPERUSER;
  • 我可以通过问题所以你知道我如何创建新的自定义 ENV,因为我无法迁移数据库。

标签: ruby-on-rails ruby nginx digital-ocean


【解决方案1】:

错误表明您没有提供rails Postgres 用户的密码。 DigitalOcean Ruby on Rails“一键式”在您登录服务器时显示的 MOTD(当日消息)中显示用户自动生成的密码。

密码也导出到/etc/default/unicornAPP_DATABASE_PASSWORD环境变量中,在您的database.yml文件中,您可以使用<%= ENV['APP_DATABASE_PASSWORD'] %>引用它

在运行 rake 命令之前,获取文件以便您可以访问环境变量:

. /etc/default/unicorn
RAILS_ENV=production rake db:create

【讨论】:

    猜你喜欢
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多