如何使用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方法,并放入数据库执行进一步的查询。这是次要的,但我可以没有它。
答
你应该有一个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
由于同样的原因使用了DBI,并且在MySQL库中遇到了很多麻烦,并且通常需要编写太多代码才能完成任务,所以我建议使用[Sequel](http://sequel.rubyforge)。 org /)远远更容易和更好的IMO。 – iain 2011-05-19 01:39:05