脱离rails 使用Active Record
目录结构

database.yml
development:
adapter: sqlite3
database: db/test.db
pool: 5
timeout: 5000
001_schema.rb
require 'active_record'
class Schema <ActiveRecord::Migration
def self.up
create_table :customers, force: true do |t|
t.string :name
t.string :address t.timestamps
end
end def self.down
drop_table :customers
end
end
customer.rb
class Customer <ActiveRecord::Base end
ar.rb
require 'rubygems'
require 'active_record'
require 'yaml'
require 'logger' ActiveRecord::Base.logger = Logger.new(STDOUT)
dbconfig = YAML::load(IO.read('config/database.yml'))
ActiveRecord::Base.establish_connection(dbconfig['development']) load 'models/customer.rb'
Gemfile
source 'https://gems.ruby-china.org'
gem 'activerecord'
gem 'sqlite3'
gem 'rake'
Rakefile
load 'ar.rb'
require 'active_record' task :default => :migrate desc 'Run migrations'
task :migrate do
ActiveRecord::Migrator.migrate('db/migrate', ENV['VERSION'] ? ENV['VERSION'].to_i : nil)
end
使用说明
在程序目录先执行 bundle install
1 在ruby目录执行 命令:
rudy-Pc :: ~/ruby » rake
D, [2016-06-15T14:36:24.712037 #6726] DEBUG -- : (4.4ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL)
D, [2016-06-15T14:36:24.712258 #6726] DEBUG -- : (0.1ms) select sqlite_version(*)
D, [2016-06-15T14:36:24.716823 #6726] DEBUG -- : (4.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
D, [2016-06-15T14:36:24.717531 #6726] DEBUG -- : ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
I, [2016-06-15T14:36:24.720448 #6726] INFO -- : Migrating to Schema (1)
D, [2016-06-15T14:36:24.720794 #6726] DEBUG -- : (0.0ms) begin transaction
== 1 Schema: migrating ========================================================
-- create_table(:customers, {:force=>true})
DEPRECATION WARNING: `#timestamps` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in up at /home/rudy/ruby/db/migrate/001_schema.rb:8)
D, [2016-06-15T14:36:24.722126 #6726] DEBUG -- : (0.2ms) CREATE TABLE "customers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "address" varchar, "created_at" datetime, "updated_at" datetime)
-> 0.0012s
== 1 Schema: migrated (0.0013s) =============================================== D, [2016-06-15T14:36:24.726539 #6726] DEBUG -- : SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "1"]]
D, [2016-06-15T14:36:24.731421 #6726] DEBUG -- : (4.7ms) commit transaction
2 在ruby目录创建 active_record.rb
load 'ar.rb'
1.upto(10) do |x|
customer = Customer.new
customer.name ="fak#{x}"
customer.address = 'beijing'
customer.save
end
我在rubymine中直接右键单击文件,选择 run active_record
/home/rudy/.rbenv/versions/2.2.3/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /home/rudy/ruby/active_record.rb
D, [2016-06-15T15:03:22.677823 #7646] DEBUG -- : (0.1ms) begin transaction
D, [2016-06-15T15:03:22.684157 #7646] DEBUG -- : SQL (0.2ms) INSERT INTO "customers" ("name", "address", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "fak1"], ["address", "beijing"], ["created_at", "2016-06-15 07:03:22.682053"], ["updated_at", "2016-06-15 07:03:22.682053"]]
D, [2016-06-15T15:03:22.691053 #7646] DEBUG -- : (6.6ms) commit transaction
D, [2016-06-15T15:03:22.691285 #7646] DEBUG -- : (0.0ms) begin transaction
D, [2016-06-15T15:03:22.691801 #7646] DEBUG -- : SQL (0.1ms) INSERT INTO "customers" ("name", "address", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "fak2"], ["address", "beijing"], ["created_at", "2016-06-15 07:03:22.691356"], ["updated_at", "2016-06-15 07:03:22.691356"]]
D, [2016-06-15T15:03:22.698569 #7646] DEBUG -- : (6.6ms) commit transaction
D, [2016-06-15T15:03:22.698767 #7646] DEBUG -- : (0.0ms) begin transaction
D, [2016-06-15T15:03:22.699331 #7646] DEBUG -- : SQL (0.1ms) INSERT INTO "customers" ("name", "address", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "fak3"], ["address", "beijing"], ["created_at", "2016-06-15 07:03:22.698849"], ["updated_at", "2016-06-15 07:03:22.698849"]]
D, [2016-06-15T15:03:22.702730 #7646] DEBUG -- : (3.2ms) commit transaction
D, [2016-06-15T15:03:22.702950 #7646] DEBUG -- : (0.1ms) begin transaction
D, [2016-06-15T15:03:22.703435 #7646] DEBUG -- : SQL (0.1ms) INSERT INTO "customers" ("name", "address", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "fak4"], ["address", "beijing"], ["created_at", "2016-06-15 07:03:22.703015"], ["updated_at", "2016-06-15 07:03:22.703015"]]
D, [2016-06-15T15:03:22.706785 #7646] DEBUG -- : (3.2ms) commit transaction
D, [2016-06-15T15:03:22.706989 #7646] DEBUG -- : (0.0ms) begin transaction
D, [2016-06-15T15:03:22.707486 #7646] DEBUG -- : SQL (0.1ms) INSERT INTO "customers" ("name", "address", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "fak5"], ["address", "beijing"], ["created_at", "2016-06-15 07:03:22.707050"], ["updated_at", "2016-06-15 07:03:22.707050"]]
D, [2016-06-15T15:03:22.710844 #7646] DEBUG -- : (3.2ms) commit transaction
D, [2016-06-15T15:03:22.711062 #7646] DEBUG -- : (0.0ms) begin transaction
D, [2016-06-15T15:03:22.711585 #7646] DEBUG -- : SQL (0.1ms) INSERT INTO "customers" ("name", "address", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "fak6"], ["address", "beijing"], ["created_at", "2016-06-15 07:03:22.711146"], ["updated_at", "2016-06-15 07:03:22.711146"]]
D, [2016-06-15T15:03:22.714980 #7646] DEBUG -- : (3.2ms) commit transaction
D, [2016-06-15T15:03:22.715185 #7646] DEBUG -- : (0.0ms) begin transaction
D, [2016-06-15T15:03:22.715699 #7646] DEBUG -- : SQL (0.1ms) INSERT INTO "customers" ("name", "address", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "fak7"], ["address", "beijing"], ["created_at", "2016-06-15 07:03:22.715263"], ["updated_at", "2016-06-15 07:03:22.715263"]]
D, [2016-06-15T15:03:22.718966 #7646] DEBUG -- : (3.1ms) commit transaction
D, [2016-06-15T15:03:22.719175 #7646] DEBUG -- : (0.0ms) begin transaction
D, [2016-06-15T15:03:22.719661 #7646] DEBUG -- : SQL (0.1ms) INSERT INTO "customers" ("name", "address", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "fak8"], ["address", "beijing"], ["created_at", "2016-06-15 07:03:22.719240"], ["updated_at", "2016-06-15 07:03:22.719240"]]
D, [2016-06-15T15:03:22.722971 #7646] DEBUG -- : (3.1ms) commit transaction
D, [2016-06-15T15:03:22.723230 #7646] DEBUG -- : (0.1ms) begin transaction
D, [2016-06-15T15:03:22.723924 #7646] DEBUG -- : SQL (0.2ms) INSERT INTO "customers" ("name", "address", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "fak9"], ["address", "beijing"], ["created_at", "2016-06-15 07:03:22.723325"], ["updated_at", "2016-06-15 07:03:22.723325"]]
D, [2016-06-15T15:03:22.727346 #7646] DEBUG -- : (3.2ms) commit transaction
D, [2016-06-15T15:03:22.727552 #7646] DEBUG -- : (0.0ms) begin transaction
D, [2016-06-15T15:03:22.728065 #7646] DEBUG -- : SQL (0.1ms) INSERT INTO "customers" ("name", "address", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "fak10"], ["address", "beijing"], ["created_at", "2016-06-15 07:03:22.727617"], ["updated_at", "2016-06-15 07:03:22.727617"]]
D, [2016-06-15T15:03:22.731302 #7646] DEBUG -- : (3.0ms) commit transaction Process finished with exit code 0
脱离rails 使用Active Record的更多相关文章
- Yii的学习(4)--Active Record
摘自Yii官网:http://www.yiiframework.com/doc/guide/1.1/zh_cn/database.ar 在官网原文的基础上添加了CDbCriteria的详细用法. 虽然 ...
- DAL、DAO、ORM、Active Record辨析
转自:http://blog.csdn.net/suiye/article/details/7824943 模型 Model 模型是MVC中的概念,指的是读取数据和改变数据的操作(业务逻辑).一开始我 ...
- Active Record: 資料庫遷移(Migration) (转)
Active Record: 資料庫遷移(Migration) Programming today is a race between software engineers striving to b ...
- Active Record快速入门指南
一.概述 Active Record(中文名:活动记录)是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录.关系型数据库往往通过外键来表述实体关系,A ...
- Active Record Query Interface 数据查询接口(界面) 看到第8节。
http://guides.rubyonrails.org/active_record_querying.html ✅How to find records using a variety of me ...
- RoR - Introduction to Active Record
Active Record: ORM ( Object-relational Mapping)Bridges the gap between relational databases , which ...
- 根据现有表操作基于active record的model
指南上都是直接生成mode,然后db migrate来生成数据库,在现实场景中,很可能是反过来的 例如 测试表app_versions rails里面,建立model class AppVersion ...
- Yii的学习(5)--Active Record的关联
官网原文:http://www.yiiframework.com/doc/guide/1.1/zh_cn/database.arr 官网中后半段为英文,而且中文的内容比英文少一些,先放到这里,之后有时 ...
- Active Record 数据库模式-增删改查操作
选择数据 下面的函数帮助你构建 SQL SELECT语句. 备注:如果你正在使用 PHP5,你可以在复杂情况下使用链式语法.本页面底部有具体描述. $this->db->get(); 运行 ...
随机推荐
- <button>会自动提交表单吗?
点击button以后,表单先由ajax提交,然后无论后台返回什么结果,页面都会跳转到表单action属性指定的路劲,也就是login.html使用的是html.jquery.javascript,后台 ...
- 最大化 AIX 上的 Java 性能,第 2 部分: 速度需求
http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf2.html 最大化 AIX 上的 Java 性能,第 ...
- python datetime
不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法.1.将字符串的时间转换为时间戳 ...
- dl,dt,dd,ul,li,ol区别
dl.dt.dd也是列表项,不过它们被忽视得比较厉害,人们只知道ul.ol.li,却经常漠视它们的存在,其实有时候,dl.dt.dd也是非常好用的,这两个家族是近亲,很多地方都是一模一样. dl类似u ...
- unity, eulerAngle
unity中欧拉角规定如下: A rotation that rotates euler.z degrees around the z axis, euler.x degrees around the ...
- linux下文件合并、分割、去重
1.文件合并 1.1文件上下合并 cat f1 f2> muti (将文件f1.f2合并成文件muti,f1在上,f2在下) 1.2左右合并 paste f1 f2 > muti (将 ...
- Android视录视频示例
这几天需要搞一个Android视频通话功能,从最简单的视频录制开始,网上例子大多不完整.下面的示例参考过别人的代码,还是拿出来给需要的朋友分享下. Activity类:VideoActivity pa ...
- Zabbix的安装与部署---问题处理(php65.6.28 mysqli 报错误 处理)
1)php65.6.28 mysqli 报错误 处理 http://www.xiaochengfu.com/index.php/index/detail/aid/92.html 2)linux下p ...
- IOS开发-手势简单使用及手势不响应处理办法
1.点击 2.长按 3.拖拽 4.轻扫.捏合.旋转 5.使用手势需要注意的地方 1.注意处理轻扫和拖拽的冲突 //那个时间短的话 就让那个先执行 //处理 拖拽和轻扫 两个手势的冲突 //需要轻扫手势 ...
- C#.NET ,微信退款证书
微信退款时遇到:基础连接已经关闭 连接被意外关闭. 服务器环境:WIN SERVER 2008 R2. WINDOWS服务承载的WCF服务,基于.NET FRAMEWORK 3.5. 第一笔交易的退 ...