1

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

ここで指定されたユーザー名ではなく、現在ログインしているユーザーとして接続を試みます。解決?

4

2 に答える 2

0

そうでない場合は、次のように宣言する必要があると思います

when :development then
  DataMapper.setup(:default, 
  {
      :adapter => "mysql",
      :database => "my_app_development",
      :username => "db_user",
      :password => "Passw0rd#13",
      :host => "localhost"
  })
when :production then
  # rest of your code
end
于 2013-01-21T13:52:03.963 に答える
0

わかりました - キー:usernameは です:user。基本的に、ハッシュには、Addressable::URI

于 2013-07-02T12:08:15.690 に答える