①activerecord gem包的修改:
经过测试可知在drizzle数据库中不支持如下两个SQL语句:
(SET NAMES='utf8';)和(SET SQL_AUTO_IS_NULL=0;)
因此为了成功的将rails和drizzle数据库连接起来,需要将activerecord gem包中的代码作如下的修正:
修改文件:
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/mysql_adapter.rb
修改前:
def configure_connection
encoding = @config[:encoding]
execute("SET NAMES '#{encoding}'") if encoding
# By default, MySQL 'where id is null' selects the last inserted id.
# Turn this off. http://dev.rubyonrails.org/ticket/6778
execute("SET SQL_AUTO_IS_NULL=0")
end
修改后(修改部分为红色被注释部分):
def configure_connection
encoding = @config[:encoding]
#execute("SET NAMES '#{encoding}'") if encoding
# By default, MySQL 'where id is null' selects the last inserted id.
# Turn this off. http://dev.rubyonrails.org/ticket/6778
#execute("SET SQL_AUTO_IS_NULL=0")
end
②rails+drizzle demo创建手顺
a)数据库配置为(database.yml):
development:
adapter: mysql
database: drizzledemo_development
encoding: utf8
username: root
password: 123
host: 133.25.78.144
port: 8606
b)rails工程创建手顺
在D:\QP\workspace\下创建drizzledemo工程目录
cd D:\QP\workspace\
D:\QP\workspace>rails drizzledemo
D:\QP\workspace>cd drizzledemo
D:\QP\workspace\drizzledemo>ruby script/generate scaffold product title:string description:text image_url:string
D:\QP\workspace\drizzledemo>rake db:migrate --trace
启动drizzledemo服务器(本次端口配置为3009),然后输入URL(http://localhost:3009/products/)即可访问并且增删改查数据了。