Ruby/Padrino アプリケーションの ORM として Datamapper を使用しようとしています。データベース接続をセットアップするには、databse.rb で次のようにします。
when :development then DataMapper.setup(:default, "mysql://db_user:dsfsdfs@localhost/my_app_development")
これはうまくいきます。しかし、私の要件は、次のような複雑なパスワードを使用することです。
when :development then DataMapper.setup(:default, "mysql://db_user:Passw0rd#13@localhost/my_app_development")
これは機能せず、エラーが発生します:
ruby/1.9.1/gems/addressable-2.2.8/lib/addressable/uri.rb:1179:in `port=': Invalid port number: "Passw0rd" (Addressable::URI::InvalidURIError)
「#」文字が問題であることがわかりました。それから私はこれをやろうとしました:
DataMapper.setup(:default,
{
:adapter => "mysql",
:database => "my_app_development",
:username => "db_user",
:password => "Passw0rd#13",
:host => "localhost"
})
これを行うと、DM がハッシュを完全に無視しているように見えます。私が走るとき
padrino rake db:create
ここで指定されたユーザー名ではなく、現在ログインしているユーザーとして接続を試みます。解決?