def mysql opts, stream IO.popen("mysql #{opts}", 'w') { |io| io.puts stream } end mysql "-u root -p", <<-END drop database if exists weblog_development; create database weblog_development; grant all on weblog_development.* to #{`id -un`.strip}@localhost; END mysql "weblog_development", <<-END drop table if exists entries; create table entries ( id int not null auto_increment, title varchar(100), updated_on datetime, content text, primary key(id) ) END require 'rubygems' require_gem 'activerecord' ActiveRecord::Base.establish_connection( :adapter => "mysql", :database => "weblog_development", :socket => "/var/run/mysqld/mysqld.sock" ) class Entry < ActiveRecord::Base end post = Entry.new post.title = "First post!" post.content = "Hello from Ruby on Rails!" post.save mysql "-t weblog_development", <<-END select * from entries; update entries set content='Right back-atcha from MySQL!'; END puts Entry.find(:first).content