schemaless 0.0.3

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.
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