AMD64 上的 ruby postgreSQL [英] ruby postgreSQL on AMD64
问题描述
---------------- 编辑----------------
我已经尝试过@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屋!