Rails Postgres db: мигрировать без пароля - PullRequest
0 голосов
/ 09 мая 2018

ответили много раз, но я слишком тупой, и мне нужен кто-то, кто объяснит мне, как мне 5 лет.

Я получаю:

C:\Users\Jaiel\Desktop\Uebung_3_Elias_Kechter_s0555064_SoSe_2018_AI_Web_Entwicklung\order_management>rails db:migrate
rails aborted!
PG::ConnectionBad: fe_sendauth: no password supplied
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

Я в Windows. Есть приложение Rails 5, которое работает как шарм, используя sqlite3 в качестве базы данных. Но, к сожалению, Heroku не хочет, чтобы у меня было вызывающее беспокойство приложение, и требует postgresql.

Я не знаю, где поставить свой пароль.

Это мой database.yml:

# PostgreSQL. Versions 9.1 and up are supported.
#
# Install the pg driver:
#   gem install pg
# On OS X with Homebrew:
#   gem install pg -- --with-pg-config=/usr/local/bin/pg_config
# On OS X with MacPorts:
#   gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
#   gem install pg
#       Choose the win32 build.
#       Install PostgreSQL and put its /bin directory on your path.
#
# Configure Using Gemfile
# gem 'pg'
#
default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see Rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: order_management_development

  # The specified database role being used to connect to postgres.
  # To create additional roles in postgres see `$ createuser --help`.
  # When left blank, postgres will use the default role. This is
  # the same name as the operating system user that initialized the database.
  #username: order_management

  # The password associated with the postgres role (username).
  #password:

  # Connect on a TCP socket. Omitted by default since the client uses a
  # domain socket that doesn't need configuration. Windows does not have
  # domain sockets, so uncomment these lines.
  #host: localhost

  # The TCP port the server listens on. Defaults to 5432.
  # If your server runs on a different port number, change accordingly.
  #port: 5432

  # Schema search path. The server defaults to $user,public
  #schema_search_path: myapp,sharedapp,public

  # Minimum log levels, in increasing order:
  #   debug5, debug4, debug3, debug2, debug1,
  #   log, notice, warning, error, fatal, and panic
  # Defaults to warning.
  #min_messages: notice

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: order_management_test

# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
#   DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
#   production:
#     url: <%= ENV['DATABASE_URL'] %>
#
production:
  <<: *default
  database: order_management_production
  username: order_management
  password: <%= ENV['ORDER_MANAGEMENT_DATABASE_PASSWORD'] %>

Я просто хочу, чтобы это работало в течение 2 часов, сейчас я читаю и до сих пор не понимаю, что я делаю неправильно.

Я попытался вставить "пароль: пароль" (мой пароль) в разделе development

но все равно получите:

PG::ConnectionBad: FATAL:  Passwort-Authentification failed for user Jaiel

1 Ответ

0 голосов
/ 09 мая 2018

Похоже, вы хотите запустить свое приложение в Heroku, и оно будет работать в производственном режиме. Поэтому Rails будет получать информацию о базе данных из database.yml и production seciton.

В котором ваши настройки для базы данных: production: <<: *default database: order_management_production username: order_management password: <%= ENV['ORDER_MANAGEMENT_DATABASE_PASSWORD'] %> там написано, что пароль будет получен из серверной среды с именем ORDER_MANAGEMENT_DATABASE_PASSWORD.

Если вы не знаете, как это установить, и ваше приложение не является реальным продуктом, вы можете заменить <%= ENV['ORDER_MANAGEMENT_DATABASE_PASSWORD'] %> реальным паролем, например abc123.


обновление 1.

Кроме того, я заметил, что вы установили параметр adapter: postgresql в разделе по умолчанию, а ваш раздел разработки унаследован от раздела по умолчанию, поэтому для адаптера базы данных для вашей разработки используется параметр postgresql, но sqlite.

Вам следует решить проблему, иначе вы получите ошибку базы данных в вашей локальной системе разработки.

А для более подробного объяснения вы можете прочитать Учебное пособие по Ruby on Rails (Rails 5) .


Извините за мой плохой английский.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...