· 8 years ago · Aug 05, 2018, 01:00 AM
1require 'dm-core'
2require 'dm-migrations'
3
4DataMapper::Logger.new($stdout, :debug)
5DataMapper.setup(:default, 'sqlite::memory:')
6
7class Person
8 include DataMapper::Resource
9 property :id, Serial
10 property :name, String
11 belongs_to :task
12end
13
14class Task
15 include DataMapper::Resource
16 property :id, Serial
17 property :name, String
18end
19
20DataMapper.auto_migrate!
21DataMapper.finalize
22
23
24bend = Task.create(:name => 'bend')
25
26Person.create(:name => 'fry', :task => bend)
27Person.create(:name => 'leela',:task => bend)
28
29Person.update(:name => 'bender')
30
31__END__
32
33ruby-1.9.2-preview3 mungo:dm-snippets snusnu$ bundle exec ruby 1244.rb
34 ~ (0.000103) SELECT sqlite_version(*)
35 ~ (0.000138) DROP TABLE IF EXISTS "people"
36 ~ (0.000013) PRAGMA table_info("people")
37 ~ (0.000326) CREATE TABLE "people" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "name" VARCHAR(50), "task_id" INTEGER NOT NULL)
38 ~ (0.000102) CREATE INDEX "index_people_task" ON "people" ("task_id")
39 ~ (0.000012) DROP TABLE IF EXISTS "tasks"
40 ~ (0.000008) PRAGMA table_info("tasks")
41 ~ (0.000110) CREATE TABLE "tasks" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "name" VARCHAR(50))
42 ~ (0.000033) INSERT INTO "tasks" ("name") VALUES ('bend')
43 ~ (0.000084) INSERT INTO "people" ("name", "task_id") VALUES ('fry', 1)
44 ~ (0.000114) INSERT INTO "people" ("name", "task_id") VALUES ('leela', 1)
45 ~ (0.000043) SELECT "id", "name", "task_id" FROM "people" ORDER BY "id"
46 ~ (0.000054) UPDATE "people" SET "name" = 'bender' WHERE "id" = 1
47 ~ (0.000040) UPDATE "people" SET "name" = 'bender' WHERE "id" = 2