如何使用Ruby的DBI创建数据库?

问题描述:

我正在开发一个小型的Ruby应用程序,我想与PostgreSQL和MySQL一起工作。如何使用Ruby的DBI创建数据库?

看来Ruby/DBI是最直接的方法;我不想安装像ActiveRecord之类的重量级的ORM。不幸的是,如果你已经有一个数据库,Ruby/DBI似乎很容易连接,但我不知道如何连接到没有数据库的服务器并发出CREATE DATABASE命令。

到目前为止,我有这样的:

dbh = DBI.connect("DBI::Pg", "username", "password") 

但是当我尝试连接我得到这个错误:Invalid Data Source Name。任何想法我可以做什么?另外,如果我可以得到一个“无数据库句柄”,我想知道是否有一个到select_db的DBI方法,并放入数据库执行进一步的查询。这是次要的,但我可以没有它。

+0

由于同样的原因使用了DBI,并且在MySQL库中遇到了很多麻烦,并且通常需要编写太多代码才能完成任务,所以我建议使用[Sequel](http://sequel.rubyforge)。 org /)远远更容易和更好的IMO。 – iain 2011-05-19 01:39:05

你应该有一个postgres数据库,所以你可以尝试:

dbh = DBI.connect('dbi:Pg:postgres', 'username', 'password') 

然后从那里执行你的CREATE DATABASE。此外,为connect的第一个参数应该是:

dbi:Driver:database_conn_args

哪里Driver是数据库驱动程序(区分大小写),database_conn_args通常是数据库名称。

+0

聪明,完全有效。万分感谢! – wickedchicken 2011-05-18 00:48:13