如何让Datamapper与Postgresql数据库配合工作?

5

我找到了几个使用datamapper的例子,并成功运行了它们。不过所有这些例子都是针对sqlite数据库的。我尝试着使用datamapper来连接postgresql。

我将datamapper中的调用从sqlite3改为了postgres,并且已经安装了dm-postgres-adapter,但仍无法正常工作。

我还需要做什么?


你能展示一下你的PostgreSQL数据库配置部分吗? - Aliaksei Kliuchnikau
我刚刚修改了sqlite3,所以它看起来像这样DataMapper.setup(:default, "postgres://#{Dir.pwd}/database.pg")。 - node ninja
2个回答

8

与SQLite不同,PostgreSQL并非将数据库存储在单个文件中。

创建了你的数据库之后,可以尝试以下操作:

DataMapper.setup :default, {
  :adapter  => 'postgres',
  :host     => 'localhost',
  :database => 'your-database-name',
  :user     => 'postgres',
}

根据您的PostgreSQL配置,您可能需要使用不同的用户连接,或者同时提供:password。您还可以使用简短形式:
DataMapper.setup(:default, 'postgres://user:password@hostname/database')

2

另一个适用于Heroku的好的连接字符串:

DataMapper.setup(:default, ENV['DATABASE_URL'] || "postgres://user:password@localhost/[YOUR_DATABASE_NAME]")

来源:http://postgresapp.com/documentation

然而,我还没有看到DataMapper会像Sqlite一样创建Postgresql数据库的任何内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接