====== ActiveRecord ====== sudo gem install activerecord ===== AR Solo ===== ActiveRecord sem rails... SEO purposes =P **TABELAS SEMPRE NOS PLURAIS** require 'rubygems' require 'active_record' ActiveRecord::Base.establish_connection( :adapter => 'mysql', #sqlite, :database => 'database', :username => 'user', :password => 'password', :host => 'localhost') === Mover dados pra outro arquivo: === aplicativo.rb require 'rubygems' require 'active_record' require 'yaml' dbconfig = YAML::load(File.open('database.yml')) ActiveRecord::Base.establish_connection(dbconfig) database.yml adapter: mysql database: database username: user password: password host: localhost ==== Brincando com AR ==== class Nome_da_tabela_com_letra_maiuscula_plural_ou_nao < ActiveRecord::Base; end puts Nome_da_tabela_com_letra_maiuscula.find 1 class Tabela < ActiveRecord::Base; end Tabela.create(:coluna => "valor", :coluna => "valor") var = Tabela.new var.coluna = "valor" var.coluna = :valor var.save ===== Debug ===== require 'rubygems' require 'active_record' require 'yaml' require 'logger' dbconfig = YAML::load(File.open('database.yml')) ActiveRecord::Base.establish_connection(dbconfig) ActiveRecord::Base.logger = Logger.new(STDERR) class User < ActiveRecord::Base end puts User.count # SQL (0.000277) SELECT count(*) AS count_all FROM users # 6 === Debug p/ arquivo === ActiveRecord::Base.logger = Logger.new(File.open('database.log', 'a')) a => append w => overwrite === Colorização === Problemas com log no arquivo? hehe ActiveRecord.colorize_logging = false ===== Migrations (sem rails) ===== ==== Rakefile ==== require 'rake' require 'active_record' require 'yaml' task :default => :migrate desc "Migrar o banco, recebe ENV[VERSION=x]" task :migrate => :environment do ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil ) end task :environment do ActiveRecord::Base.establish_connection(YAML::load(File.open('database.yml'))) ActiveRecord::Base.logger = Logger.new(File.open('database.log', 'a')) end ==== db/migrate ==== Criar esta pasta! Repare no 001,002,003! **ORDEM!** === db/migrate/001_comeco.rb === class Comeco < ActiveRecord::Migration def self.up create_table :users do |t| t.string :name, :null => false t.integer :idade t.boolean :sexo t.date :nasc t.decimal :salario t.float :bonus t.text :historia t.time :agora t.timestamp end end def self.down drop_table :users end end === db/migrate/002_cria_regras.rb === Segunda migration class CriaRegras < ActiveRecord::Migration def self.up create_table :roles do |t| t.string :name, :null => false t.integer :valor, :null => false end end def self.down drop_table :roles end end ===== Brincando ===== Carregar todas migrations: rake Apagar tudo: rake VERSION=0 rake VERSION=n ====== Source ====== rails.aizatto.com/2007/05/21/activerecord-without-rails/+activerecord+without+rails