AMD64 上的 ruby​​ postgreSQL [英] ruby postgreSQL on AMD64

查看:35
本文介绍了AMD64 上的 ruby​​ postgreSQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

---------------- 编辑----------------

我已经尝试过@Duk 所说的,但仍然没有任何效果.多试几次后,我发现问题不在 DataMapper 上.事实上,在 AMD64 上失败的是 postgreSQL 适配器.

我有 PostgreSQL 的二进制发行版(在他们的网站上找到的最后一个),我通过做一个

gem 安装...

有人可以帮助我吗?

---------------- 原创 ----------------

按照 DataMapper 网站的入门",我遇到了这个例子:

# Postgres 连接:DataMapper.setup(:default, 'postgres://localhost/the_database_name')

我安装了 postgre 数据库、DataMapper 和所有依赖项(包括开发套件)代码如下:

gem 'data_mapper'需要'dm-core'需要 'dm-migrations/adapters/dm-postgres-adapter'# 如果您想显示日志,您必须在调用 setup 之前执行此操作DataMapper::Logger.new($stdout, :debug)# 一个 Postgres 连接:DataMapper.setup(:default, 'postgres://localhost/test')

但是当我运行它时,出现此错误:

D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': 193: %1 n?est pas une application Win32 valide.- D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/do_postgres-0.10.8-x86-mingw32/lib/do_postgres/1.9/do_postgres.so (LoadError)来自 D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'来自 D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/do_postgres-0.10.8-x86-mingw32/lib/do_postgres.rb:30:in ‘rescue in <top (required)>'来自 D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/do_postgres-0.10.8-x86-mingw32/lib/do_postgres.rb:25:in `<top (required)>'来自 D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'来自 D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'来自 D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-postgres-adapter-1.2.0/lib/dm-postgres-adapter/adapter.rb:1:in `<top (必填)>'来自 D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'来自 D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'来自 D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-postgres-adapter-1.2.0/lib/dm-postgres-adapter.rb:1:in `<top(必需)>'来自 D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `require'来自 D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in ‘rescue in require’来自 D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'来自 D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:163:in `load_adapter'来自 D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:133:in `adapter_class'来自 D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:13:in `new'来自 D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core.rb:228:in `setup'来自 D:/dev/workspace/ruby/training/bin/pg/main.rb:8:in `'来自 -e:1:in `load'来自 -e:1:in `<main>'

错误发生在load_adapter"函数上:

 需要dm-#{name}-adapter"

显然没有找到该文件.我尝试按照此处的建议手动包含适配器,但没有成功.

有什么想法吗?谢谢

解决方案

你必须安装 dm-postgres-adapter(gem install dm-postgres-adapter) 然后安装 data_mapper(gem install data_mapper).

---------------- EDIT ----------------

I've tried what @Duk said, and still nothing work. After trying a little more, i figured out that the problem isn't on DataMapper. In fact it's the postgreSQL adapter that fails on AMD64.

I have binary distribution of PostgreSQL (the last one found on their site) and I got all the gems by doing a

gem install...

Someone can help me ?

---------------- ORIGINAL ----------------

Following the "Get Started" from DataMapper website, i ran across this example :

# A Postgres connection:
DataMapper.setup(:default, 'postgres://localhost/the_database_name')

I have my postgre database installed, DataMapper and every dependency (dev-kit included) Here's the code :

gem 'data_mapper'
require 'dm-core'
require 'dm-migrations/adapters/dm-postgres-adapter'
# If you want the logs displayed you have to do this before the call to setup
DataMapper::Logger.new($stdout, :debug)

# A Postgres connection:
DataMapper.setup(:default, 'postgres://localhost/test')

But when I run it, this error occurs :

D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': 193: %1 n?est pas une application Win32 valide.   - D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/do_postgres-0.10.8-x86-mingw32/lib/do_postgres/1.9/do_postgres.so (LoadError)
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/do_postgres-0.10.8-x86-mingw32/lib/do_postgres.rb:30:in `rescue in <top (required)>'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/do_postgres-0.10.8-x86-mingw32/lib/do_postgres.rb:25:in `<top (required)>'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-postgres-adapter-1.2.0/lib/dm-postgres-adapter/adapter.rb:1:in `<top (required)>'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-postgres-adapter-1.2.0/lib/dm-postgres-adapter.rb:1:in `<top (required)>'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `require'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:163:in `load_adapter'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:133:in `adapter_class'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:13:in `new'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core.rb:228:in `setup'
    from D:/dev/workspace/ruby/training/bin/pg/main.rb:8:in `<top (required)>'
    from -e:1:in `load'
    from -e:1:in `<main>'

The error occurs on "load_adapter" function :

    require "dm-#{name}-adapter"

Apparently the file isn't found. I've tryed to include the adapter manually as proposed here but without success.

Any idea ? thanks

解决方案

You have to install dm-postgres-adapter(gem install dm-postgres-adapter) then install data_mapper(gem install data_mapper).

这篇关于AMD64 上的 ruby​​ postgreSQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆