schemaless 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +93 -0
  3. data/Rakefile +18 -0
  4. data/lib/generators/schemaless/migrations/USAGE +8 -0
  5. data/lib/generators/schemaless/migrations/migrations_generator.rb +108 -0
  6. data/lib/generators/schemaless/migrations/templates/change_table.rb +34 -0
  7. data/lib/generators/schemaless/migrations/templates/create_table.rb +18 -0
  8. data/lib/generators/schemaless/setup/setup_generator.rb +17 -0
  9. data/lib/generators/schemaless/setup/templates/schemaless.rb +3 -0
  10. data/lib/schemaless/ar/fields.rb +76 -0
  11. data/lib/schemaless/ar/indexes.rb +46 -0
  12. data/lib/schemaless/ar/stubs.rb +15 -0
  13. data/lib/schemaless/field.rb +94 -0
  14. data/lib/schemaless/index.rb +59 -0
  15. data/lib/schemaless/railtie.rb +23 -0
  16. data/lib/schemaless/table.rb +95 -0
  17. data/lib/schemaless/version.rb +4 -0
  18. data/lib/schemaless/worker.rb +47 -0
  19. data/lib/schemaless.rb +21 -0
  20. data/lib/tasks/schemaless_tasks.rake +23 -0
  21. data/spec/dummy/README.rdoc +28 -0
  22. data/spec/dummy/Rakefile +6 -0
  23. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  24. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  25. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  26. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  27. data/spec/dummy/app/models/bike.rb +18 -0
  28. data/spec/dummy/app/models/place.rb +8 -0
  29. data/spec/dummy/app/models/rider.rb +8 -0
  30. data/spec/dummy/app/models/user.rb +21 -0
  31. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  32. data/spec/dummy/bin/bundle +3 -0
  33. data/spec/dummy/bin/rails +4 -0
  34. data/spec/dummy/bin/rake +4 -0
  35. data/spec/dummy/config/application.rb +28 -0
  36. data/spec/dummy/config/boot.rb +5 -0
  37. data/spec/dummy/config/database.yml +25 -0
  38. data/spec/dummy/config/environment.rb +5 -0
  39. data/spec/dummy/config/environments/development.rb +37 -0
  40. data/spec/dummy/config/environments/production.rb +78 -0
  41. data/spec/dummy/config/environments/test.rb +39 -0
  42. data/spec/dummy/config/initializers/assets.rb +8 -0
  43. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  44. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  45. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  46. data/spec/dummy/config/initializers/inflections.rb +16 -0
  47. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  48. data/spec/dummy/config/initializers/session_store.rb +3 -0
  49. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  50. data/spec/dummy/config/locales/en.yml +23 -0
  51. data/spec/dummy/config/routes.rb +56 -0
  52. data/spec/dummy/config/secrets.yml +22 -0
  53. data/spec/dummy/config.ru +4 -0
  54. data/spec/dummy/db/development.sqlite3 +0 -0
  55. data/spec/dummy/db/migrate/20141202223732_create_bikes.rb +16 -0
  56. data/spec/dummy/db/migrate/20141202223750_create_places.rb +9 -0
  57. data/spec/dummy/db/migrate/20141202223751_create_riders.rb +10 -0
  58. data/spec/dummy/db/migrate/20141202223752_create_users.rb +8 -0
  59. data/spec/dummy/db/migrate/20141202223753_create_user_skills.rb +8 -0
  60. data/spec/dummy/db/migrate/20141202223754_create_user_extras.rb +8 -0
  61. data/spec/dummy/db/production.sqlite3 +0 -0
  62. data/spec/dummy/db/test.sqlite3 +0 -0
  63. data/spec/dummy/log/development.log +213 -0
  64. data/spec/dummy/log/test.log +185888 -0
  65. data/spec/dummy/public/404.html +67 -0
  66. data/spec/dummy/public/422.html +67 -0
  67. data/spec/dummy/public/500.html +66 -0
  68. data/spec/dummy/public/favicon.ico +0 -0
  69. data/spec/generators/schemaless/migrations/migration_generator_spec.rb +14 -0
  70. data/spec/locales/en.yml +15 -0
  71. data/spec/locales/pt.yml +27 -0
  72. data/spec/schemaless/ar/fields_spec.rb +45 -0
  73. data/spec/schemaless/ar/indexes_spec.rb +43 -0
  74. data/spec/schemaless/field_spec.rb +29 -0
  75. data/spec/schemaless/index_spec.rb +9 -0
  76. data/spec/schemaless/table_spec.rb +25 -0
  77. data/spec/schemaless/worker_spec.rb +57 -0
  78. data/spec/schemaless_spec.rb +15 -0
  79. data/spec/spec_helper.rb +57 -0
  80. data/spec/support/001_create_testing_structure.rb +36 -0
  81. metadata +309 -0
@@ -0,0 +1,23 @@
1
+ # Files in the config/locales directory are used for internationalization
2
+ # and are automatically loaded by Rails. If you want to use locales other
3
+ # than English, add the necessary files in this directory.
4
+ #
5
+ # To use the locales, use `I18n.t`:
6
+ #
7
+ # I18n.t 'hello'
8
+ #
9
+ # In views, this is aliased to just `t`:
10
+ #
11
+ # <%= t('hello') %>
12
+ #
13
+ # To use a different locale, set it with `I18n.locale`:
14
+ #
15
+ # I18n.locale = :es
16
+ #
17
+ # This would use the information in config/locales/es.yml.
18
+ #
19
+ # To learn more, please read the Rails Internationalization guide
20
+ # available at http://guides.rubyonrails.org/i18n.html.
21
+
22
+ en:
23
+ hello: "Hello world"
@@ -0,0 +1,56 @@
1
+ Rails.application.routes.draw do
2
+ # The priority is based upon order of creation: first created -> highest priority.
3
+ # See how all your routes lay out with "rake routes".
4
+
5
+ # You can have the root of your site routed with "root"
6
+ # root 'welcome#index'
7
+
8
+ # Example of regular route:
9
+ # get 'products/:id' => 'catalog#view'
10
+
11
+ # Example of named route that can be invoked with purchase_url(id: product.id)
12
+ # get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
13
+
14
+ # Example resource route (maps HTTP verbs to controller actions automatically):
15
+ # resources :products
16
+
17
+ # Example resource route with options:
18
+ # resources :products do
19
+ # member do
20
+ # get 'short'
21
+ # post 'toggle'
22
+ # end
23
+ #
24
+ # collection do
25
+ # get 'sold'
26
+ # end
27
+ # end
28
+
29
+ # Example resource route with sub-resources:
30
+ # resources :products do
31
+ # resources :comments, :sales
32
+ # resource :seller
33
+ # end
34
+
35
+ # Example resource route with more complex sub-resources:
36
+ # resources :products do
37
+ # resources :comments
38
+ # resources :sales do
39
+ # get 'recent', on: :collection
40
+ # end
41
+ # end
42
+
43
+ # Example resource route with concerns:
44
+ # concern :toggleable do
45
+ # post 'toggle'
46
+ # end
47
+ # resources :posts, concerns: :toggleable
48
+ # resources :photos, concerns: :toggleable
49
+
50
+ # Example resource route within a namespace:
51
+ # namespace :admin do
52
+ # # Directs /admin/products/* to Admin::ProductsController
53
+ # # (app/controllers/admin/products_controller.rb)
54
+ # resources :products
55
+ # end
56
+ end
@@ -0,0 +1,22 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure the secrets in this file are kept private
11
+ # if you're sharing your code publicly.
12
+
13
+ development:
14
+ secret_key_base: a170636f38f3c689515afc87597762ab494c3c5e9ad629bc4b4f61e55b32cdd716ed73c6944fbeb1d7803287cdb6d6be19b56428a47070f4117fe3216966175d
15
+
16
+ test:
17
+ secret_key_base: 86478f5bef137f1fc10068b5e49f3da56782c8d716028284fead2cab49532bdffd92e8d839d605f78b1cde1505028bf053bb914449cec7399edf6169ddfc12a5
18
+
19
+ # Do not keep production secrets in the repository,
20
+ # instead read values from the environment.
21
+ production:
22
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Rails.application
File without changes
@@ -0,0 +1,16 @@
1
+ class CreateBikes < ActiveRecord::Migration
2
+ def change
3
+ create_table :bikes do |t|
4
+ t.string :name, null: true, limit: 255
5
+ t.integer :cylinders, null: true
6
+ t.integer :rpm, null: true
7
+ t.integer :cc, null: true
8
+ t.integer :user_id, null: true
9
+ t.timestamp :created_at, null: true
10
+ t.timestamp :updated_at, null: true
11
+ end
12
+ add_index :bikes, :cylinders
13
+ add_index :bikes, :name
14
+ add_index :bikes, :cc
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ class CreatePlaces < ActiveRecord::Migration
2
+ def change
3
+ create_table :places do |t|
4
+ t.string :name, null: true, limit: 255
5
+ t.string :geom, null: true, limit: 255
6
+ end
7
+ add_index :places, :name
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ class CreateRiders < ActiveRecord::Migration
2
+ def change
3
+ create_table :riders do |t|
4
+ t.string :name, null: true, limit: 255
5
+ t.integer :position, null: true
6
+ end
7
+ add_index :riders, :position
8
+ add_index :riders, [:name, :position]
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table :users do |t|
4
+ t.string :name, null: true, limit: 255
5
+ t.integer :number, null: true
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class CreateUserSkills < ActiveRecord::Migration
2
+ def change
3
+ create_table :user_skills do |t|
4
+ t.string :kind, null: true, limit: 255
5
+ t.integer :user_id, null: true
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class CreateUserExtras < ActiveRecord::Migration
2
+ def change
3
+ create_table :user_extras do |t|
4
+ t.string :key, null: true, limit: 255
5
+ t.integer :user_id, null: true
6
+ end
7
+ end
8
+ end
File without changes
File without changes
@@ -0,0 +1,213 @@
1
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
2
+ SQLite3::SQLException: no such table: users: SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
3
+ User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
4
+ SQLite3::SQLException: no such table: users: SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
5
+ User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
6
+ SQLite3::SQLException: no such table: users: SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
7
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
8
+ SQLite3::SQLException: no such table: users: SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
9
+ User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
10
+ SQLite3::SQLException: no such table: users: SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
11
+  (13.8ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
12
+  (12.7ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
13
+  (12.6ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
14
+  (12.3ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
15
+  (18.6ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
16
+  (0.3ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
17
+ SQLite3::SQLException: table "bikes" already exists: CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
18
+  (13.9ms) ALTER TABLE "bikes" ADD "name" varchar(255)
19
+  (12.8ms) ALTER TABLE "bikes" ADD "cylinders" integer
20
+  (11.7ms) ALTER TABLE "bikes" ADD "cc" integer
21
+  (12.0ms) ALTER TABLE "bikes" ADD "user_id" integer
22
+  (18.2ms) ALTER TABLE "places" ADD "name" varchar(255)
23
+  (12.6ms) ALTER TABLE "places" ADD "geom" varchar(255)
24
+  (17.5ms) ALTER TABLE "users" ADD "name" varchar(255)
25
+  (18.1ms) ALTER TABLE "users" ADD "number" integer
26
+  (12.9ms) ALTER TABLE "user_skills" ADD "kind" varchar(255)
27
+  (12.0ms) ALTER TABLE "user_skills" ADD "user_id" integer
28
+  (11.6ms) ALTER TABLE "user_extras" ADD "key" varchar(255)
29
+  (12.5ms) ALTER TABLE "user_extras" ADD "user_id" integer
30
+  (27.6ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
31
+  (12.5ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
32
+  (12.8ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
33
+  (18.4ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
34
+  (12.7ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
35
+  (0.2ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
36
+ SQLite3::SQLException: table "bikes" already exists: CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
37
+  (20.2ms) ALTER TABLE "bikes" ADD "name" varchar(255)
38
+  (12.4ms) ALTER TABLE "bikes" ADD "cylinders" integer
39
+  (12.8ms) ALTER TABLE "bikes" ADD "cc" integer
40
+  (12.9ms) ALTER TABLE "bikes" ADD "user_id" integer
41
+  (17.6ms) ALTER TABLE "places" ADD "name" varchar(255)
42
+  (18.7ms) ALTER TABLE "places" ADD "geom" varchar(255)
43
+  (13.3ms) ALTER TABLE "users" ADD "name" varchar(255)
44
+  (17.8ms) ALTER TABLE "users" ADD "number" integer
45
+  (19.3ms) ALTER TABLE "user_skills" ADD "kind" varchar(255)
46
+  (12.3ms) ALTER TABLE "user_skills" ADD "user_id" integer
47
+  (12.8ms) ALTER TABLE "user_extras" ADD "key" varchar(255)
48
+  (13.3ms) ALTER TABLE "user_extras" ADD "user_id" integer
49
+  (15.5ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
50
+  (13.1ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
51
+  (19.6ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
52
+  (14.5ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
53
+  (13.1ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
54
+  (0.2ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
55
+ SQLite3::SQLException: table "bikes" already exists: CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
56
+  (14.0ms) ALTER TABLE "bikes" ADD "name" varchar(255)
57
+  (12.2ms) ALTER TABLE "bikes" ADD "cylinders" integer
58
+  (11.8ms) ALTER TABLE "bikes" ADD "cc" integer
59
+  (17.1ms) ALTER TABLE "bikes" ADD "user_id" integer
60
+  (11.9ms) ALTER TABLE "places" ADD "name" varchar(255)
61
+  (12.3ms) ALTER TABLE "places" ADD "geom" varchar(255)
62
+  (17.8ms) ALTER TABLE "users" ADD "name" varchar(255)
63
+  (17.8ms) ALTER TABLE "users" ADD "number" integer
64
+  (11.5ms) ALTER TABLE "user_skills" ADD "kind" varchar(255)
65
+  (18.5ms) ALTER TABLE "user_skills" ADD "user_id" integer
66
+  (12.0ms) ALTER TABLE "user_extras" ADD "key" varchar(255)
67
+  (12.5ms) ALTER TABLE "user_extras" ADD "user_id" integer
68
+  (16.8ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
69
+  (14.3ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
70
+  (14.2ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
71
+  (13.4ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
72
+  (12.6ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
73
+  (0.2ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
74
+ SQLite3::SQLException: table "bikes" already exists: CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
75
+  (26.7ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
76
+  (18.3ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
77
+  (19.2ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
78
+  (19.0ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
79
+  (12.8ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
80
+  (0.3ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
81
+ SQLite3::SQLException: table "bikes" already exists: CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
82
+  (14.2ms) ALTER TABLE "bikes" ADD "name" varchar(255)
83
+  (13.4ms) ALTER TABLE "bikes" ADD "cylinders" integer
84
+  (17.1ms) ALTER TABLE "bikes" ADD "cc" integer
85
+  (11.7ms) ALTER TABLE "bikes" ADD "user_id" integer
86
+  (17.5ms) ALTER TABLE "places" ADD "name" varchar(255)
87
+  (18.9ms) ALTER TABLE "places" ADD "geom" varchar(255)
88
+  (18.8ms) ALTER TABLE "users" ADD "name" varchar(255)
89
+  (18.6ms) ALTER TABLE "users" ADD "number" integer
90
+  (12.3ms) ALTER TABLE "user_skills" ADD "kind" varchar(255)
91
+  (11.6ms) ALTER TABLE "user_skills" ADD "user_id" integer
92
+  (13.2ms) ALTER TABLE "user_extras" ADD "key" varchar(255)
93
+  (12.1ms) ALTER TABLE "user_extras" ADD "user_id" integer
94
+  (15.8ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
95
+  (11.8ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
96
+  (16.6ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
97
+  (12.0ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
98
+  (18.1ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
99
+  (0.1ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
100
+ SQLite3::SQLException: table "bikes" already exists: CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
101
+  (14.1ms) ALTER TABLE "bikes" ADD "name" varchar(255)
102
+  (11.7ms) ALTER TABLE "bikes" ADD "cylinders" integer
103
+  (12.5ms) ALTER TABLE "bikes" ADD "cc" integer
104
+  (17.1ms) ALTER TABLE "bikes" ADD "user_id" integer
105
+  (11.7ms) ALTER TABLE "places" ADD "name" varchar(255)
106
+  (12.6ms) ALTER TABLE "places" ADD "geom" varchar(255)
107
+  (16.9ms) ALTER TABLE "users" ADD "name" varchar(255)
108
+  (12.8ms) ALTER TABLE "users" ADD "number" integer
109
+  (12.3ms) ALTER TABLE "user_skills" ADD "kind" varchar(255)
110
+  (12.5ms) ALTER TABLE "user_skills" ADD "user_id" integer
111
+  (18.0ms) ALTER TABLE "user_extras" ADD "key" varchar(255)
112
+  (18.1ms) ALTER TABLE "user_extras" ADD "user_id" integer
113
+  (14.6ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
114
+  (19.3ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
115
+  (12.9ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
116
+  (11.5ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
117
+  (18.4ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
118
+  (0.2ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
119
+ SQLite3::SQLException: table "bikes" already exists: CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
120
+  (13.5ms) ALTER TABLE "bikes" ADD "name" varchar(255)
121
+  (11.8ms) ALTER TABLE "bikes" ADD "cylinders" integer
122
+  (18.4ms) ALTER TABLE "bikes" ADD "cc" integer
123
+  (29.3ms) ALTER TABLE "bikes" ADD "user_id" integer
124
+  (13.5ms) ALTER TABLE "places" ADD "name" varchar(255)
125
+  (12.7ms) ALTER TABLE "places" ADD "geom" varchar(255)
126
+  (12.7ms) ALTER TABLE "users" ADD "name" varchar(255)
127
+  (13.1ms) ALTER TABLE "users" ADD "number" integer
128
+  (20.0ms) ALTER TABLE "user_skills" ADD "kind" varchar(255)
129
+  (18.4ms) ALTER TABLE "user_skills" ADD "user_id" integer
130
+  (11.5ms) ALTER TABLE "user_extras" ADD "key" varchar(255)
131
+  (12.5ms) ALTER TABLE "user_extras" ADD "user_id" integer
132
+  (15.4ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
133
+  (13.1ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
134
+  (20.1ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
135
+  (13.2ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
136
+  (19.7ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
137
+  (0.3ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
138
+ SQLite3::SQLException: table "bikes" already exists: CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
139
+  (20.8ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
140
+  (12.7ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
141
+  (12.6ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
142
+  (12.7ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
143
+  (13.2ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
144
+  (0.2ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
145
+ SQLite3::SQLException: table "bikes" already exists: CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
146
+  (14.3ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
147
+  (17.6ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
148
+  (12.7ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
149
+  (12.1ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
150
+  (18.1ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
151
+  (17.0ms) ALTER TABLE "bikes" ADD "name" varchar(255)
152
+  (17.6ms) ALTER TABLE "bikes" ADD "cylinders" integer
153
+  (11.7ms) ALTER TABLE "bikes" ADD "cc" integer
154
+  (12.1ms) ALTER TABLE "bikes" ADD "user_id" integer
155
+  (18.8ms) ALTER TABLE "places" ADD "name" varchar(255)
156
+  (12.4ms) ALTER TABLE "places" ADD "geom" varchar(255)
157
+  (11.7ms) ALTER TABLE "users" ADD "name" varchar(255)
158
+  (13.5ms) ALTER TABLE "users" ADD "number" integer
159
+  (18.7ms) ALTER TABLE "user_skills" ADD "kind" varchar(255)
160
+  (13.4ms) ALTER TABLE "user_skills" ADD "user_id" integer
161
+  (12.7ms) ALTER TABLE "user_extras" ADD "key" varchar(255)
162
+  (24.7ms) ALTER TABLE "user_extras" ADD "user_id" integer
163
+  (15.5ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
164
+  (18.2ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
165
+  (18.2ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
166
+  (12.6ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
167
+  (12.2ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
168
+  (12.7ms) ALTER TABLE "bikes" ADD "name" varchar(255)
169
+  (12.3ms) ALTER TABLE "bikes" ADD "cylinders" integer
170
+  (12.8ms) ALTER TABLE "bikes" ADD "cc" integer
171
+  (20.0ms) ALTER TABLE "bikes" ADD "user_id" integer
172
+  (18.2ms) ALTER TABLE "places" ADD "name" varchar(255)
173
+  (11.3ms) ALTER TABLE "places" ADD "geom" varchar(255)
174
+  (12.0ms) ALTER TABLE "users" ADD "name" varchar(255)
175
+  (18.8ms) ALTER TABLE "users" ADD "number" integer
176
+  (13.3ms) ALTER TABLE "user_skills" ADD "kind" varchar(255)
177
+  (12.9ms) ALTER TABLE "user_skills" ADD "user_id" integer
178
+  (13.2ms) ALTER TABLE "user_extras" ADD "key" varchar(255)
179
+  (12.9ms) ALTER TABLE "user_extras" ADD "user_id" integer
180
+  (15.3ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
181
+  (19.0ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
182
+  (18.5ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
183
+  (13.2ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
184
+  (12.4ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
185
+  (19.0ms) ALTER TABLE "bikes" ADD "name" varchar(255)
186
+  (13.4ms) ALTER TABLE "bikes" ADD "cylinders" integer
187
+  (18.5ms) ALTER TABLE "bikes" ADD "cc" integer
188
+  (18.5ms) ALTER TABLE "bikes" ADD "user_id" integer
189
+  (19.0ms) ALTER TABLE "places" ADD "name" varchar(255)
190
+  (12.3ms) ALTER TABLE "places" ADD "geom" varchar(255)
191
+  (25.2ms) ALTER TABLE "users" ADD "name" varchar(255)
192
+  (13.1ms) ALTER TABLE "users" ADD "number" integer
193
+  (12.4ms) ALTER TABLE "user_skills" ADD "kind" varchar(255)
194
+  (12.4ms) ALTER TABLE "user_skills" ADD "user_id" integer
195
+  (18.9ms) ALTER TABLE "user_extras" ADD "key" varchar(255)
196
+  (13.8ms) ALTER TABLE "user_extras" ADD "user_id" integer
197
+  (15.1ms) CREATE TABLE "bikes" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
198
+  (12.5ms) CREATE TABLE "places" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
199
+  (18.5ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
200
+  (12.0ms) CREATE TABLE "user_skills" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
201
+  (22.8ms) CREATE TABLE "user_extras" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
202
+  (12.1ms) ALTER TABLE "bikes" ADD "name" varchar(255)
203
+  (12.8ms) ALTER TABLE "bikes" ADD "cylinders" integer
204
+  (18.0ms) ALTER TABLE "bikes" ADD "cc" integer
205
+  (12.4ms) ALTER TABLE "bikes" ADD "user_id" integer
206
+  (12.8ms) ALTER TABLE "places" ADD "name" varchar(255)
207
+  (11.8ms) ALTER TABLE "places" ADD "geom" varchar(255)
208
+  (17.8ms) ALTER TABLE "users" ADD "name" varchar(255)
209
+  (12.2ms) ALTER TABLE "users" ADD "number" integer
210
+  (11.9ms) ALTER TABLE "user_skills" ADD "kind" varchar(255)
211
+  (17.2ms) ALTER TABLE "user_skills" ADD "user_id" integer
212
+  (12.0ms) ALTER TABLE "user_extras" ADD "key" varchar(255)
213
+  (17.5ms) ALTER TABLE "user_extras" ADD "user_id" integer