built_in_data 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +6 -9
- data/Rakefile +1 -3
- data/lib/built_in_data/version.rb +1 -1
- data/lib/built_in_data.rb +21 -53
- data/test/built_in_data_test.rb +33 -52
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +1 -1
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +69 -11
- data/test/dummy/log/test.log +166 -474
- metadata +69 -59
data/README.rdoc
CHANGED
@@ -12,6 +12,7 @@ It allows developers to deliver, update, and destroy data that is stored in the
|
|
12
12
|
Add *built_in_key* to your model:
|
13
13
|
|
14
14
|
ruby script/rails generate migration AddBuiltInKeyToYourModel built_in_key:string
|
15
|
+
rake db:migrate
|
15
16
|
|
16
17
|
Include *BuiltInData* in your model:
|
17
18
|
|
@@ -22,19 +23,19 @@ Include *BuiltInData* in your model:
|
|
22
23
|
Setup your data:
|
23
24
|
There are two methods to load data
|
24
25
|
|
25
|
-
*
|
26
|
-
YourModel.
|
26
|
+
* Pass as a hash to load_built_in_data!
|
27
|
+
YourModel.load_built_in_data!({
|
27
28
|
:glacier => {
|
28
29
|
:name => 'Glacier National Park',
|
29
30
|
},
|
30
|
-
|
31
|
+
|
31
32
|
:yellowstone => {
|
32
33
|
:name => 'Yellowstone National Park',
|
33
34
|
}
|
34
|
-
}
|
35
|
+
})
|
35
36
|
|
36
37
|
|
37
|
-
*
|
38
|
+
* Create a yaml load file in *db/built_in_data* with the name of the model (ie. national_parks.yml), and load the data with `YourModel.load_built_in_data!` without any arguments.
|
38
39
|
|
39
40
|
glacier:
|
40
41
|
name: Glacier National Park
|
@@ -42,7 +43,3 @@ There are two methods to load data
|
|
42
43
|
yellowstone:
|
43
44
|
name: Yellowstone National Park
|
44
45
|
|
45
|
-
|
46
|
-
Load the data with *load_built_in_data!*:
|
47
|
-
|
48
|
-
YourModel.load_built_in_data!
|
data/Rakefile
CHANGED
@@ -20,14 +20,12 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
20
20
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
23
|
Bundler::GemHelper.install_tasks
|
27
24
|
|
28
25
|
require 'rake/testtask'
|
29
26
|
|
30
27
|
Rake::TestTask.new(:test) do |t|
|
28
|
+
system 'cd test/dummy; rake db:setup; rake db:test:prepare; cd ../../'
|
31
29
|
t.libs << 'lib'
|
32
30
|
t.libs << 'test'
|
33
31
|
t.pattern = 'test/**/*_test.rb'
|
data/lib/built_in_data.rb
CHANGED
@@ -1,73 +1,44 @@
|
|
1
1
|
module BuiltInData
|
2
|
-
# add built_in_key to your model
|
3
|
-
# generate migration AddBuiltInKeyToYourModel built_in_key:string
|
4
|
-
#
|
5
|
-
# require in your model
|
6
|
-
# require BuiltInData
|
7
|
-
#
|
8
|
-
# there are two methods to load data
|
9
|
-
# 1) assign built_in_data_attributes
|
10
|
-
# YourModel.built_in_data_attributes = {
|
11
|
-
# :glacier => {
|
12
|
-
# :name => 'Glacier National Park',
|
13
|
-
# },
|
14
|
-
#
|
15
|
-
# :yellowstone => {
|
16
|
-
# :name => 'Yellowstone National Park',
|
17
|
-
# }
|
18
|
-
# }
|
19
|
-
#
|
20
|
-
# 2) create a yaml load file in db/built_in_data with the name of the model (ie. national_parks.yml)
|
21
|
-
# glacier:
|
22
|
-
# name: Glacier National Park
|
23
|
-
#
|
24
|
-
# yellowstone:
|
25
|
-
# name: Yellowstone National Park
|
26
|
-
#
|
27
|
-
#
|
28
|
-
# call load_built_in_data! to load
|
29
|
-
# YourModel.load_built_in_data!
|
30
|
-
|
31
2
|
extend ActiveSupport::Concern
|
32
|
-
|
3
|
+
|
33
4
|
included do
|
34
5
|
# all built in data objects should have a built_in_key, model objects without a key will not be modified or removed
|
35
6
|
validates_uniqueness_of :built_in_key, :allow_nil => true
|
36
|
-
|
7
|
+
|
37
8
|
scope :built_in, :conditions => 'built_in_key IS NOT NULL'
|
38
9
|
end
|
39
|
-
|
10
|
+
|
40
11
|
module ClassMethods
|
41
|
-
def load_built_in_data!
|
12
|
+
def load_built_in_data!(hash = nil)
|
13
|
+
objects_hash = prepare_objects_hash(hash)
|
42
14
|
Array.new.tap do |updated_objects|
|
43
|
-
|
44
|
-
|
15
|
+
|
16
|
+
objects_hash.each do |key, attributes|
|
45
17
|
updated_objects << create_or_update!(key, attributes)
|
46
18
|
end
|
47
|
-
|
19
|
+
|
48
20
|
# destroy any built_in objects that have been removed from built_in_data_attributes
|
49
21
|
self.built_in.each do |object|
|
50
|
-
object.destroy unless
|
22
|
+
object.destroy unless objects_hash.has_key?(object.built_in_key)
|
51
23
|
end
|
52
24
|
end
|
53
25
|
end
|
54
|
-
|
55
|
-
def built_in_data_attributes
|
56
|
-
@built_in_data_attributes ||= load_yaml_data
|
57
|
-
end
|
58
|
-
|
59
|
-
def built_in_data_attributes=(attributes)
|
60
|
-
@built_in_data_attributes = (attributes.respond_to?(:with_indifferent_access) ? attributes.with_indifferent_access : attributes)
|
61
|
-
end
|
62
|
-
|
63
|
-
|
26
|
+
|
64
27
|
#######
|
65
28
|
private
|
66
29
|
#######
|
67
|
-
|
30
|
+
|
31
|
+
def prepare_objects_hash(hash)
|
32
|
+
return hash.nil? ? load_yaml_data : hash.with_indifferent_access
|
33
|
+
end
|
34
|
+
|
35
|
+
def load_yaml_data
|
36
|
+
YAML.load_file(Rails.root.join('db', 'built_in_data', "#{table_name}.yml"))
|
37
|
+
end
|
38
|
+
|
68
39
|
def create_or_update!(key, attributes)
|
69
40
|
attributes.merge!(:built_in_key => key.to_s)
|
70
|
-
|
41
|
+
|
71
42
|
object = find_by_built_in_key(key)
|
72
43
|
if object
|
73
44
|
object.update_attributes!(attributes)
|
@@ -76,9 +47,6 @@ module BuiltInData
|
|
76
47
|
result = create!(attributes)
|
77
48
|
end
|
78
49
|
end
|
79
|
-
|
80
|
-
def load_yaml_data
|
81
|
-
YAML.load_file(Rails.root.join('db', 'built_in_data', "#{table_name}.yml"))
|
82
|
-
end
|
50
|
+
|
83
51
|
end
|
84
52
|
end
|
data/test/built_in_data_test.rb
CHANGED
@@ -1,90 +1,71 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class BuiltInDataTest < ActiveSupport::TestCase
|
4
|
-
|
4
|
+
HASH_DATA = {
|
5
|
+
:test => {
|
6
|
+
:name => 'Yellowstone National Park',
|
7
|
+
:established => '1872-03-01',
|
8
|
+
:url => 'http://www.nps.gov/yell/index.htm'
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
5
12
|
test "should load built in data" do
|
6
13
|
assert_difference 'NationalPark.count' do
|
7
|
-
|
14
|
+
load_hash_data
|
8
15
|
end
|
9
|
-
|
16
|
+
|
10
17
|
assert_equal 'Yellowstone National Park', NationalPark.find_by_built_in_key('test').name
|
11
18
|
end
|
12
|
-
|
19
|
+
|
13
20
|
test "should remove built in data" do
|
14
|
-
|
15
|
-
|
16
|
-
|
21
|
+
load_hash_data
|
22
|
+
|
17
23
|
assert_difference 'NationalPark.count', -1 do
|
18
|
-
NationalPark.load_built_in_data!
|
24
|
+
NationalPark.load_built_in_data!({})
|
19
25
|
end
|
20
|
-
|
26
|
+
|
21
27
|
assert_nil NationalPark.find_by_built_in_key('test')
|
22
28
|
end
|
23
|
-
|
24
|
-
test "should not add or remove records" do
|
25
|
-
load_test_data
|
26
|
-
|
27
|
-
assert_no_difference "NationalPark.count" do
|
28
|
-
NationalPark.load_built_in_data!
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
29
|
+
|
32
30
|
test "should not remove a record without a built_in_key" do
|
33
31
|
park = NationalPark.create(:name => 'Testing')
|
34
|
-
|
32
|
+
|
35
33
|
assert_difference 'NationalPark.count', 1 do
|
36
|
-
|
34
|
+
load_hash_data
|
37
35
|
end
|
38
36
|
assert_equal 'Testing', park.reload.name
|
39
37
|
end
|
40
|
-
|
38
|
+
|
41
39
|
test "should update existing built in data" do
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
40
|
+
load_hash_data
|
41
|
+
assert_not_equal 'http://en.wikipedia.org/wiki/Yellowstone_National_Park', NationalPark.find_by_built_in_key('test').url
|
42
|
+
modified_hash = HASH_DATA.dup
|
43
|
+
modified_hash[:test][:url] = 'http://en.wikipedia.org/wiki/Yellowstone_National_Park'
|
44
|
+
NationalPark.load_built_in_data!(modified_hash)
|
46
45
|
assert_equal 'http://en.wikipedia.org/wiki/Yellowstone_National_Park', NationalPark.find_by_built_in_key('test').url
|
47
46
|
end
|
48
|
-
|
49
|
-
|
50
|
-
# loading from a yaml file
|
51
|
-
test "should load data from yaml file" do
|
52
|
-
NationalPark.built_in_data_attributes = nil
|
53
|
-
assert_equal 2, NationalPark.built_in_data_attributes.length
|
54
|
-
end
|
55
|
-
|
47
|
+
|
56
48
|
test "should load built in data from yaml file" do
|
57
|
-
NationalPark.built_in_data_attributes = nil
|
58
|
-
|
59
49
|
assert_difference 'NationalPark.count', 2 do
|
60
50
|
NationalPark.load_built_in_data!
|
61
51
|
end
|
62
52
|
end
|
63
|
-
|
53
|
+
|
64
54
|
test "should load elements from file only once" do
|
65
|
-
NationalPark.built_in_data_attributes = nil
|
66
55
|
NationalPark.load_built_in_data!
|
67
|
-
|
68
|
-
|
56
|
+
|
69
57
|
assert_no_difference 'NationalPark.count' do
|
70
58
|
NationalPark.load_built_in_data!
|
71
59
|
end
|
72
60
|
end
|
73
|
-
|
74
|
-
|
61
|
+
|
62
|
+
|
75
63
|
#######
|
76
64
|
private
|
77
65
|
#######
|
78
|
-
|
79
|
-
def
|
80
|
-
NationalPark.
|
81
|
-
:test => {
|
82
|
-
:name => 'Yellowstone National Park',
|
83
|
-
:established => '1872-03-01',
|
84
|
-
:url => 'http://www.nps.gov/yell/index.htm'
|
85
|
-
}
|
86
|
-
}
|
87
|
-
|
88
|
-
NationalPark.load_built_in_data!
|
66
|
+
|
67
|
+
def load_hash_data
|
68
|
+
NationalPark.load_built_in_data!(HASH_DATA)
|
89
69
|
end
|
70
|
+
|
90
71
|
end
|
Binary file
|
data/test/dummy/db/schema.rb
CHANGED
@@ -17,9 +17,9 @@ ActiveRecord::Schema.define(:version => 20121024201818) do
|
|
17
17
|
t.string "name"
|
18
18
|
t.date "established"
|
19
19
|
t.string "url"
|
20
|
-
t.string "built_in_key"
|
21
20
|
t.datetime "created_at", :null => false
|
22
21
|
t.datetime "updated_at", :null => false
|
22
|
+
t.string "built_in_key"
|
23
23
|
end
|
24
24
|
|
25
25
|
end
|
data/test/dummy/db/test.sqlite3
CHANGED
Binary file
|
@@ -1,17 +1,75 @@
|
|
1
1
|
Connecting to database specified by database.yml
|
2
|
+
[1m[36m (20.1ms)[0m [1mselect sqlite_version(*)[0m
|
3
|
+
[1m[35m (147.2ms)[0m CREATE TABLE "national_parks" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "established" date, "url" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "built_in_key" varchar(255))
|
4
|
+
[1m[36m (108.1ms)[0m [1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) [0m
|
5
|
+
[1m[35m (0.1ms)[0m PRAGMA index_list("schema_migrations")
|
6
|
+
[1m[36m (91.7ms)[0m [1mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m
|
7
|
+
[1m[35m (0.1ms)[0m SELECT version FROM "schema_migrations"
|
8
|
+
[1m[36m (124.4ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20121024201818')[0m
|
9
|
+
[1m[35m (108.5ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('20121024195810')
|
10
|
+
[1m[36m (0.1ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations" [0m
|
2
11
|
Connecting to database specified by database.yml
|
3
|
-
[1m[36m (0.1ms)[0m [
|
4
|
-
[1m[35m (14.7ms)[0m CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
|
5
|
-
[1m[36m (0.0ms)[0m [1mPRAGMA index_list("schema_migrations")[0m
|
6
|
-
[1m[35m (5.5ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
7
|
-
[1m[36m (0.1ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations" [0m
|
8
|
-
Migrating to CreateNationalParks (20121024195810)
|
9
|
-
[1m[35m (0.0ms)[0m begin transaction
|
10
|
-
[1m[36m (0.4ms)[0m [1mCREATE TABLE "national_parks" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "established" date, "url" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) [0m
|
11
|
-
[1m[35m (0.1ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ('20121024195810')
|
12
|
-
[1m[36m (1.3ms)[0m [1mcommit transaction[0m
|
12
|
+
[1m[36m (0.1ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations" [0m
|
13
13
|
[1m[35m (0.2ms)[0m select sqlite_version(*)
|
14
|
+
[1m[36m (145.0ms)[0m [1mCREATE TABLE "national_parks" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "established" date, "url" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "built_in_key" varchar(255)) [0m
|
15
|
+
[1m[35m (133.2ms)[0m CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
|
16
|
+
[1m[36m (0.1ms)[0m [1mPRAGMA index_list("schema_migrations")[0m
|
17
|
+
[1m[35m (116.7ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
18
|
+
[1m[36m (0.1ms)[0m [1mSELECT version FROM "schema_migrations"[0m
|
19
|
+
[1m[35m (116.1ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('20121024201818')
|
20
|
+
[1m[36m (117.4ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20121024195810')[0m
|
21
|
+
Connecting to database specified by database.yml
|
22
|
+
[1m[36m (19.0ms)[0m [1mselect sqlite_version(*)[0m
|
23
|
+
[1m[35m (195.5ms)[0m DROP TABLE "national_parks"
|
24
|
+
[1m[36m (116.6ms)[0m [1mCREATE TABLE "national_parks" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "established" date, "url" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "built_in_key" varchar(255)) [0m
|
25
|
+
[1m[35m (0.1ms)[0m SELECT version FROM "schema_migrations"
|
14
26
|
[1m[36m (0.1ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations" [0m
|
15
|
-
[1m[35m (0.0ms)[0m PRAGMA index_list("national_parks")
|
16
27
|
Connecting to database specified by database.yml
|
28
|
+
[1m[36m (0.1ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations" [0m
|
29
|
+
[1m[35m (0.3ms)[0m select sqlite_version(*)
|
30
|
+
[1m[36m (160.3ms)[0m [1mCREATE TABLE "national_parks" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "established" date, "url" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "built_in_key" varchar(255)) [0m
|
31
|
+
[1m[35m (116.5ms)[0m CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
|
32
|
+
[1m[36m (0.1ms)[0m [1mPRAGMA index_list("schema_migrations")[0m
|
33
|
+
[1m[35m (108.4ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
34
|
+
[1m[36m (0.1ms)[0m [1mSELECT version FROM "schema_migrations"[0m
|
35
|
+
[1m[35m (149.4ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('20121024201818')
|
36
|
+
[1m[36m (92.0ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20121024195810')[0m
|
37
|
+
Connecting to database specified by database.yml
|
38
|
+
[1m[36m (18.3ms)[0m [1mselect sqlite_version(*)[0m
|
39
|
+
[1m[35m (137.1ms)[0m DROP TABLE "national_parks"
|
40
|
+
[1m[36m (116.6ms)[0m [1mCREATE TABLE "national_parks" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "established" date, "url" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "built_in_key" varchar(255)) [0m
|
41
|
+
[1m[35m (0.1ms)[0m SELECT version FROM "schema_migrations"
|
42
|
+
[1m[36m (0.1ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations" [0m
|
17
43
|
Connecting to database specified by database.yml
|
44
|
+
[1m[36m (0.1ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations" [0m
|
45
|
+
[1m[35m (0.3ms)[0m select sqlite_version(*)
|
46
|
+
[1m[36m (135.2ms)[0m [1mCREATE TABLE "national_parks" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "established" date, "url" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "built_in_key" varchar(255)) [0m
|
47
|
+
[1m[35m (116.5ms)[0m CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
|
48
|
+
[1m[36m (0.1ms)[0m [1mPRAGMA index_list("schema_migrations")[0m
|
49
|
+
[1m[35m (91.7ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
50
|
+
[1m[36m (0.1ms)[0m [1mSELECT version FROM "schema_migrations"[0m
|
51
|
+
[1m[35m (83.0ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('20121024201818')
|
52
|
+
[1m[36m (118.3ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20121024195810')[0m
|
53
|
+
Connecting to database specified by database.yml
|
54
|
+
[1m[36m (0.1ms)[0m [1mselect sqlite_version(*)[0m
|
55
|
+
[1m[35m (127.3ms)[0m CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
|
56
|
+
[1m[36m (0.1ms)[0m [1mPRAGMA index_list("schema_migrations")[0m
|
57
|
+
[1m[35m (99.9ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
58
|
+
[1m[36m (0.1ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations" [0m
|
59
|
+
Connecting to database specified by database.yml
|
60
|
+
[1m[36m (18.7ms)[0m [1mselect sqlite_version(*)[0m
|
61
|
+
[1m[35m (152.0ms)[0m CREATE TABLE "national_parks" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "established" date, "url" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "built_in_key" varchar(255))
|
62
|
+
[1m[36m (0.1ms)[0m [1mSELECT version FROM "schema_migrations"[0m
|
63
|
+
[1m[35m (117.6ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('20121024201818')
|
64
|
+
[1m[36m (116.9ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20121024195810')[0m
|
65
|
+
[1m[35m (0.1ms)[0m SELECT "schema_migrations"."version" FROM "schema_migrations"
|
66
|
+
Connecting to database specified by database.yml
|
67
|
+
[1m[36m (0.1ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations" [0m
|
68
|
+
[1m[35m (0.2ms)[0m select sqlite_version(*)
|
69
|
+
[1m[36m (142.2ms)[0m [1mCREATE TABLE "national_parks" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "established" date, "url" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "built_in_key" varchar(255)) [0m
|
70
|
+
[1m[35m (116.4ms)[0m CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
|
71
|
+
[1m[36m (0.1ms)[0m [1mPRAGMA index_list("schema_migrations")[0m
|
72
|
+
[1m[35m (91.7ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
73
|
+
[1m[36m (0.1ms)[0m [1mSELECT version FROM "schema_migrations"[0m
|
74
|
+
[1m[35m (91.6ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('20121024201818')
|
75
|
+
[1m[36m (83.1ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20121024195810')[0m
|