rails database_url, выходящий из mysql2 url passwod

Поэтому я пытаюсь установить переменную среды для своей базы данных производственной среды rails, как предложено в файле.yml. В моем.bash_profile я экспортирую это так:

export DATABASE_URL=mysql2://<username>:<password>@localhost/<database>

Я иду на свой сайт, и я получаюActiveRecord::AdapterNotSpecified" ошибка.

Единственное, о чем я могу думать, это то, что мой пароль оканчивается знаком @, что приводит к тому, что у URL будет @@, и он будет сбит с толку, когда заканчивается пароль и начинается хост?

Также это приложение размещено на Hostmonster, если это поможет

database.yml:

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: <username>
  password: <password>
  database: <database>

development:
  <<: *default
  database: <database>

# 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: <database>

# Avoid production credentials in the repository,
# instead read the configuration from the environment.
#
# Example:
#   mysql2://myuser:mypass@localhost/somedatabase
#
production:
  url: <%= ENV["DATABASE_URL"] %>

1 ответ

Решение

Возможно, вам также потребуется включить часть по умолчанию:

production:
  <<: *default

Если ваш пароль имеет @ в нем попробуйте кодировать его для URL:

password%40

Это может быть вещь. Либо так, либо выберите пароль, подходящий для URL.

Как примечание, обычно лучше принимать database.yml файл для производства исключительно на целевом сервере, а затем вставьте символическую ссылку при развертывании приложения.

Другие вопросы по тегам