puzzle-apartment 2.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +71 -0
  3. data/.github/ISSUE_TEMPLATE.md +21 -0
  4. data/.github/workflows/changelog.yml +63 -0
  5. data/.github/workflows/reviewdog.yml +22 -0
  6. data/.gitignore +15 -0
  7. data/.pryrc +5 -0
  8. data/.rspec +4 -0
  9. data/.rubocop.yml +33 -0
  10. data/.rubocop_todo.yml +418 -0
  11. data/.ruby-version +1 -0
  12. data/.story_branch.yml +5 -0
  13. data/Appraisals +49 -0
  14. data/CHANGELOG.md +963 -0
  15. data/Gemfile +17 -0
  16. data/Guardfile +11 -0
  17. data/HISTORY.md +496 -0
  18. data/README.md +652 -0
  19. data/Rakefile +157 -0
  20. data/TODO.md +50 -0
  21. data/docker-compose.yml +33 -0
  22. data/gemfiles/rails_6_1.gemfile +17 -0
  23. data/gemfiles/rails_7_0.gemfile +17 -0
  24. data/gemfiles/rails_7_1.gemfile +17 -0
  25. data/gemfiles/rails_master.gemfile +17 -0
  26. data/lib/apartment/active_record/connection_handling.rb +34 -0
  27. data/lib/apartment/active_record/internal_metadata.rb +9 -0
  28. data/lib/apartment/active_record/postgresql_adapter.rb +39 -0
  29. data/lib/apartment/active_record/schema_migration.rb +13 -0
  30. data/lib/apartment/adapters/abstract_adapter.rb +275 -0
  31. data/lib/apartment/adapters/abstract_jdbc_adapter.rb +20 -0
  32. data/lib/apartment/adapters/jdbc_mysql_adapter.rb +19 -0
  33. data/lib/apartment/adapters/jdbc_postgresql_adapter.rb +62 -0
  34. data/lib/apartment/adapters/mysql2_adapter.rb +77 -0
  35. data/lib/apartment/adapters/postgis_adapter.rb +13 -0
  36. data/lib/apartment/adapters/postgresql_adapter.rb +284 -0
  37. data/lib/apartment/adapters/sqlite3_adapter.rb +66 -0
  38. data/lib/apartment/console.rb +24 -0
  39. data/lib/apartment/custom_console.rb +42 -0
  40. data/lib/apartment/deprecation.rb +11 -0
  41. data/lib/apartment/elevators/domain.rb +23 -0
  42. data/lib/apartment/elevators/first_subdomain.rb +18 -0
  43. data/lib/apartment/elevators/generic.rb +33 -0
  44. data/lib/apartment/elevators/host.rb +35 -0
  45. data/lib/apartment/elevators/host_hash.rb +26 -0
  46. data/lib/apartment/elevators/subdomain.rb +66 -0
  47. data/lib/apartment/log_subscriber.rb +45 -0
  48. data/lib/apartment/migrator.rb +52 -0
  49. data/lib/apartment/model.rb +29 -0
  50. data/lib/apartment/railtie.rb +68 -0
  51. data/lib/apartment/tasks/enhancements.rb +55 -0
  52. data/lib/apartment/tasks/task_helper.rb +52 -0
  53. data/lib/apartment/tenant.rb +63 -0
  54. data/lib/apartment/version.rb +5 -0
  55. data/lib/apartment.rb +159 -0
  56. data/lib/generators/apartment/install/USAGE +5 -0
  57. data/lib/generators/apartment/install/install_generator.rb +11 -0
  58. data/lib/generators/apartment/install/templates/apartment.rb +116 -0
  59. data/lib/tasks/apartment.rake +106 -0
  60. data/puzzle-apartment.gemspec +59 -0
  61. metadata +385 -0
data/Gemfile ADDED
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'http://rubygems.org'
4
+
5
+ gem 'rails'
6
+
7
+ platforms :ruby do
8
+ gem "sqlite3"
9
+ end
10
+
11
+ platforms :jruby do
12
+ gem "activerecord-jdbc-adapter"
13
+ gem "activerecord-jdbcpostgresql-adapter"
14
+ gem "activerecord-jdbcmysql-adapter"
15
+ end
16
+
17
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ # A sample Guardfile
4
+ # More info at https://github.com/guard/guard#readme
5
+
6
+ guard :rspec do
7
+ watch(%r{^spec/.+_spec\.rb$})
8
+ watch(%r{^lib/apartment/(.+)\.rb$}) { |m| "spec/unit/#{m[1]}_spec.rb" }
9
+ watch(%r{^lib/apartment/(.+)\.rb$}) { |m| "spec/integration/#{m[1]}_spec.rb" }
10
+ watch('spec/spec_helper.rb') { 'spec' }
11
+ end
data/HISTORY.md ADDED
@@ -0,0 +1,496 @@
1
+ # v2.7.1
2
+
3
+ **Implemented enhancements:**
4
+
5
+ - N/a
6
+
7
+ **Fixed bugs:**
8
+
9
+ - [Resolves #82] Enhanced db:create breaks plugin compatibility - <https://github.com/rails-on-services/apartment/pull/83>
10
+
11
+ **Closed issues:**
12
+
13
+ - Update rake version in development
14
+ - Renamed gemspec to match gem name
15
+
16
+ # v2.7.0
17
+
18
+ **Implemented enhancements:**
19
+
20
+ - [Resolves #70] Rake tasks define methods on main - <https://github.com/rails-on-services/apartment/pull/75>
21
+ - Add database and schema to active record log. Configurable, defaults to false to keep current behavior - <https://github.com/rails-on-services/apartment/pull/55>
22
+
23
+ **Fixed bugs:**
24
+
25
+ - [Fixes #61] Fix database create in mysql - <https://github.com/rails-on-services/apartment/pull/76>
26
+
27
+ **Closed issues:**
28
+
29
+ - Remove deprecated tld_length config option: tld_length was removed in influitive#309, this configuration option doesn't have any effect now. - <https://github.com/rails-on-services/apartment/pull/72>
30
+ - Using [diffend.io proxy](https://diffend.io) to safely check required gems
31
+ - Added [story branch](https://github.com/story-branch/story_branch) to the configuration
32
+ - Using travis-ci to run rubocop as well, replacing github actions: github actions do not work in fork's PRs
33
+
34
+ # v2.6.1
35
+
36
+ **Implemented enhancements:**
37
+ - N/a
38
+
39
+ **Fixed bugs:**
40
+ - [Resolves influitive#607] Avoid early connection
41
+ - <https://github.com/rails-on-services/apartment/pull/39>
42
+ - <https://github.com/rails-on-services/apartment/pull/53>
43
+ - <https://github.com/rails-on-services/apartment/pull/51>
44
+ - [Resolves #52] Rake db:setup tries to seed non existent tenant - <https://github.com/rails-on-services/apartment/pull/54>
45
+ - [Resolves #56] DB rollback uses second last migration - <https://github.com/rails-on-services/apartment/pull/57>
46
+
47
+ #**Closed issues:**
48
+ - N/a
49
+
50
+ # v2.6.0
51
+
52
+ **Implemented enhancements:**
53
+ - [Resolves #26] Support configuration for skip checking of schema existence before switching
54
+ - [Resolves #41] Add tenant info to console boot
55
+
56
+ **Fixed bugs:**
57
+ - [Resolves #37] Custom Console deprecation warning
58
+ - [Resolves #42] After switch callback not working with nil argument
59
+
60
+ #**Closed issues:**
61
+ - Updated github actions configuration to run on PRs as well
62
+
63
+ # v2.5.0
64
+
65
+ **Implemented enhancements:**
66
+ - [Resolves #6] Adds support for rails 6.1
67
+ - [Resolves #27] Adds support to not rely on set search path, but instead prepends the schema name to the table name when using postgresql with schemas.
68
+ - [Resolves #35] Cache keys are now tenant dependent
69
+
70
+ **Fixed bugs:**
71
+ - [Resolves #27] Manually switching connection between read and write forgets the schema
72
+
73
+ #**Closed issues:**
74
+ - [Resolves #31] Add latest ruby versions to test matrix
75
+
76
+ # v2.4.0
77
+
78
+ **Implemented enhancements:**
79
+ - [Resolves #14] Add console info about tenants and fast switches #17
80
+ - Skip init if we're running webpacker:compile #18
81
+
82
+ **Fixed bugs:**
83
+ - Don't crash when no database connection is present #16
84
+ - Rescuing ActiveRecord::NoDatabaseError when dropping tenants #19
85
+
86
+ #**Closed issues:**
87
+ - Rakefile should use mysql port from configuration #5
88
+ - [Resolves #9] Cleanup rubocop todo #8
89
+ - Cleanup travis matrix #23
90
+
91
+ # v2.3.0
92
+ * January 3, 2020
93
+
94
+ **Implemented enhancements:**
95
+ - Basic support for rails 6
96
+ - Released different gem name, with same API as apartment
97
+
98
+ # v2.2.1
99
+ * June 19, 2019
100
+
101
+ **Implemented enhancements:**
102
+ - #566: IGNORE_EMPTY_TENANTS environment variable to ignore empty tenants
103
+ warning. [Pysis868]
104
+
105
+ **Fixed bugs:**
106
+ - #586: Ignore `CREATE SCHEMA public` statement in pg dump [artemave]
107
+ - #549: Fix Postgres schema creation with dump SQL [ancorcruz]
108
+
109
+ # v2.2.0
110
+ * April 14, 2018
111
+
112
+ **Implemented enhancements:**
113
+ - #523: Add Rails 5.2 support [IngusSkaistkalns]
114
+ - #504: Test against Ruby 2.5.0 [ahorek]
115
+ - #528: Test against Rails 5.2 [meganemura]
116
+
117
+ **Removed:**
118
+ - #504: Remove Rails 4.0/4.1 support [ahorek]
119
+ - #545: Stop supporting for JRuby + Rails 5.0 [meganemura]
120
+
121
+ **Fixed bugs:**
122
+ - #537: Fix PostgresqlSchemaFromSqlAdapter for newer PostgreSQL [shterrett]
123
+ - #532: Issue is reported by [aldrinmartoq]
124
+ - #519: Fix exception when main database doesn't exist [mayeco]
125
+
126
+ **Closed issues:**
127
+
128
+ - #514: Fix typo [menorval]
129
+
130
+ # v2.1.0
131
+ * December 15, 2017
132
+
133
+ - Add `parallel_migration_threads` configuration option for running migrations
134
+ in parallel [ryanbrunner]
135
+ - Drop Ruby 2.0.0 support [meganemura]
136
+ - ignore_private when parsing subdomains with PublicSuffix [michiomochi]
137
+ - Ignore row_security statements in psql dumps for backward compatibility
138
+ [meganemura]
139
+ - "Host" elevator [shrmnk]
140
+ - Enhance db:drop task to act on all tenants [kuzukuzu]
141
+
142
+ # v2.0.0
143
+ * July 26, 2017
144
+
145
+ - Raise FileNotFound rather than abort when loading files [meganemura]
146
+ - Add 5.1 support with fixes for deprecations [meganemura]
147
+ - Fix tests for 5.x and a host of dev-friendly improvements [meganemura]
148
+ - Keep query cache config after switching databases [fernandomm]
149
+ - Pass constants not strings to middleware stack (Rails 5) [tzabaman]
150
+ - Remove deprecations from 1.0.0 [caironoleto]
151
+ - Replace `tld_length` configuration option with PublicSuffix gem for the
152
+ subdomain elevator [humancopy]
153
+ - Pass full config to create_database to allow :encoding/:collation/etc
154
+ [kakipo]
155
+ - Don't retain a connection during initialization [mikecmpbll]
156
+ - Fix database name escaping in drop_command [mikecmpbll]
157
+ - Skip initialization for assets:clean and assets:precompile tasks
158
+ [frank-west-iii]
159
+
160
+ # v1.2.0
161
+ * July 28, 2016
162
+
163
+ - Official Rails 5 support
164
+
165
+ # v1.1.0
166
+ * May 26, 2016
167
+
168
+ - Reset tenant after each request
169
+ - [Support callbacks](https://github.com/influitive/apartment/commit/ff9c9d092a781026502f5997c0bbedcb5748bc83) on switch [cbeer]
170
+ - Preliminary support for [separate database hosts](https://github.com/influitive/apartment/commit/abdffbf8cd9fba87243f16c86390da13e318ee1f) [apneadiving]
171
+
172
+ # v1.0.2
173
+ * July 2, 2015
174
+
175
+ - Fix pg_dump env vars - pull/208 [MitinPavel]
176
+ - Allow custom seed data file - pull/234 [typeoneerror]
177
+
178
+ # v1.0.1
179
+ * April 28, 2015
180
+
181
+ - Fix `Apartment::Deprecation` which was rescuing all exceptions
182
+
183
+ # v1.0.0
184
+ * Feb 3, 2015
185
+
186
+ - [BREAKING CHANGE] `Apartment::Tenant.process` is deprecated in favour of `Apartment::Tenant.switch`
187
+ - [BREAKING CHANGE] `Apartment::Tenant.switch` without a block is deprecated in favour of `Apartment::Tenant.switch!`
188
+ - Raise proper `TenantNotFound`, `TenantExists` exceptions
189
+ - Deprecate old `SchemaNotFound`, `DatabaseNotFound` exceptions
190
+
191
+ # v0.26.1
192
+ * Jan 13, 2015
193
+
194
+ - Fixed [schema quoting bug](https://github.com/influitive/apartment/issues/198#issuecomment-69782651) [jonsgreen]
195
+
196
+ # v0.26.0
197
+ * Jan 5, 2015
198
+
199
+ - Rails 4.2 support
200
+
201
+ # v0.25.2
202
+ * Sept 8, 2014
203
+
204
+ - Heroku fix on `assets:precompile` - pull/169 [rabbitt]
205
+
206
+ # v0.25.1
207
+ * July 17, 2014
208
+
209
+ - Fixed a few vestiges of Apartment::Database
210
+
211
+ # v0.25.0
212
+ * July 3, 2014
213
+
214
+ - [BREAKING CHANGE] - `Apartment::Database` is not deprecated in favour of
215
+ `Apartment::Tenant`
216
+ - ActiveRecord (and Rails) 4.1 now supported
217
+ - A new sql based adapter that dumps the schema using sql
218
+
219
+ # v0.24.3
220
+ * March 5, 2014
221
+
222
+ - Rake enhancements weren't removed from the generator template
223
+
224
+ # v0.24.2
225
+ * February 24, 2014
226
+
227
+ - Better warnings if `apartment:migrate` is run
228
+
229
+ # v0.24.1
230
+ * February 21, 2014
231
+
232
+ - requiring `apartment/tasks/enhancements` in an initializer doesn't work
233
+ - One can disable tenant migrations using `Apartment.db_migrate_tenants = false` in the Rakefile
234
+
235
+ # v0.24
236
+ * February 21, 2014 (In honour of the Women's Gold Medal in Hockey at Sochi)
237
+
238
+ - [BREAKING CHANGE] `apartment:migrate` task no longer depends on `db:migrate`
239
+ - Instead, you can `require 'apartment/tasks/enhancements'` in your Apartment initializer
240
+ - This will enhance `rake db:migrate` to also run `apartment:migrate`
241
+ - You can now forget about ever running `apartment:migrate` again
242
+ - Numerous deprecations for things referencing the word 'database'
243
+ - This is an ongoing effort to completely replace 'database' with 'tenant' as a better abstraction
244
+ - Note the obvious `Apartment::Database` still exists but will hopefully become `Apartment::Tenant` soon
245
+
246
+ # v0.23.2
247
+ * January 9, 2014
248
+
249
+ - Increased visibility of #parse_database_name warning
250
+
251
+ # v0.23.1
252
+ * January 8, 2014
253
+
254
+ - Schema adapters now initialize with default and persistent schemas
255
+ - Deprecated Apartment::Elevators#parse_database_name
256
+
257
+ # v0.23.0
258
+ * August 21, 2013
259
+
260
+ - Subdomain Elevator now allows for exclusions
261
+ - Delayed::Job has been completely removed
262
+
263
+ # v0.22.1
264
+ * August 21, 2013
265
+
266
+ - Fix bug where if your ruby process importing the database schema is run
267
+ from a directory other than the app root, Apartment wouldn't know what
268
+ schema_migrations to insert into the database (Rails only)
269
+
270
+ # v0.22.0
271
+ * June 9, 2013
272
+
273
+ - Numerous bug fixes:
274
+ - Mysql reset could connect to wrong database [eric88]
275
+ - Postgresql schema names weren't quoted properly [gdott9]
276
+ - Fixed error message on SchemaNotFound in `process`
277
+ - HostHash elevator allows mapping host based on hash contents [gdott9]
278
+ - Official Sidekiq support with the [apartment-sidekiq gem](https://github.com/influitive/apartment-sidekiq)
279
+
280
+
281
+ # v0.21.1
282
+ * May 31, 2013
283
+
284
+ - Clearing the AR::QueryCache after switching databases.
285
+ - Fixes issue with stale model being loaded for schema adapters
286
+
287
+ # v0.21.0
288
+ * April 24, 2013
289
+
290
+ - JDBC support!! [PetrolMan]
291
+
292
+ # v0.20.0
293
+ * Feb 6, 2013
294
+
295
+ - Mysql now has a 'schema like' option to perform like Postgresql (default)
296
+ - This should be significantly more performant than using connections
297
+ - Psych is now supported for Delayed::Job yaml parsing
298
+
299
+ # v0.19.2
300
+ * Jan 30, 2013
301
+
302
+ - Database schema file can now be set manually or skipped altogether
303
+
304
+ # v0.19.1
305
+ * Jan 30, 2013
306
+
307
+ - Allow schema.rb import file to be specified in config or skip schema.rb import altogether
308
+
309
+ # v0.19.0
310
+ * Dec 29, 2012
311
+
312
+ - Apartment is now threadsafe
313
+ - New postgis adapter [zonpantli]
314
+ - Removed ActionDispatch dependency for use with Rack apps (regression)
315
+
316
+ # v0.18.0
317
+ * Nov 27, 2012
318
+
319
+ - Added `append_environment` config option [virtualstaticvoid]
320
+ - Cleaned up the readme and generator documentation
321
+ - Added `connection_class` config option [smashtank]
322
+ - Fixed a [bug](https://github.com/influitive/apartment/issues/17#issuecomment-10758327) in pg adapter when missing schema
323
+
324
+ # v0.17.1
325
+ * Oct 30, 2012
326
+
327
+ - Fixed a bug where switching to an unknown db in mysql2 would crash the app [Frodotus]
328
+
329
+ # v0.17.0
330
+ * Sept 26, 2012
331
+
332
+ - Apartment has [a new home!](https://github.com/influitive/apartment)
333
+ - Support Sidekiq hooks to switch dbs [maedhr]
334
+ - Allow VERSION to be used on apartment:migrate [Bhavin Kamani]
335
+
336
+ # v0.16.0
337
+ * June 1, 2012
338
+
339
+ - Apartment now supports a default_schema to be set, rather than relying on ActiveRecord's default schema_search_path
340
+ - Additional schemas can always be maintained in the schema_search_path by configuring persistent_schemas [ryanbrunner]
341
+ - This means Hstore is officially supported!!
342
+ - There is now a full domain based elevator to switch dbs based on the whole domain [lcowell]
343
+ - There is now a generic elevator that takes a Proc to switch dbs based on the return value of that proc.
344
+
345
+ # v0.15.0
346
+ * March 18, 2012
347
+
348
+ - Remove Rails dependency, Apartment can now be used with any Rack based framework using ActiveRecord
349
+
350
+ # v0.14.4
351
+ * March 8, 2012
352
+
353
+ - Delayed::Job Hooks now return to the previous database, rather than resetting
354
+
355
+ # v0.14.3
356
+ * Feb 21, 2012
357
+
358
+ - Fix yaml serialization of non DJ models
359
+
360
+ # v0.14.2
361
+ * Feb 21, 2012
362
+
363
+ - Fix Delayed::Job yaml encoding with Rails > 3.0.x
364
+
365
+ # v0.14.1
366
+ * Dec 13, 2011
367
+
368
+ - Fix ActionDispatch::Callbacks deprecation warnings
369
+
370
+ # v0.14.0
371
+ * Dec 13, 2011
372
+
373
+ - Rails 3.1 Support
374
+
375
+ # v0.13.1
376
+ * Nov 8, 2011
377
+
378
+ - Reset prepared statement cache for rails 3.1.1 before switching dbs when using postgresql schemas
379
+ - Only necessary until the next release which will be more schema aware
380
+
381
+ # v0.13.0
382
+ * Oct 25, 2011
383
+
384
+ - `process` will now rescue with reset if the previous schema/db is no longer available
385
+ - `create` now takes an optional block which allows you to process within the newly created db
386
+ - Fixed Rails version >= 3.0.10 and < 3.1 because there have been significant testing problems with 3.1, next version will hopefully fix this
387
+
388
+ # v0.12.0
389
+ * Oct 4, 2011
390
+
391
+ - Added a `drop` method for removing databases/schemas
392
+ - Refactored abstract adapter to further remove duplication in concrete implementations
393
+ - Excluded models now take string references so they are properly reloaded in development
394
+ - Better silencing of `schema.rb` loading using `verbose` flag
395
+
396
+ # v0.11.1
397
+ * Sep 22, 2011
398
+
399
+ - Better use of Railties for initializing apartment
400
+ - The following changes were necessary as I haven't figured out how to properly hook into Rails reloading
401
+ - Added reloader middleware in development to init Apartment on each request
402
+ - Override `reload!` in console to also init Apartment
403
+
404
+ # v0.11.0
405
+ * Sep 20, 2011
406
+
407
+ - Excluded models no longer use a different connection when using postgresql schemas. Instead their table_name is prefixed with `public.`
408
+
409
+ # v0.10.3
410
+ * Sep 20, 2011
411
+
412
+ - Fix improper raising of exceptions on create and reset
413
+
414
+ # v0.10.2
415
+ * Sep 15, 2011
416
+
417
+ - Remove all the annoying logging for loading db schema and seeding on create
418
+
419
+ # v0.10.1
420
+ * Aug 11, 2011
421
+
422
+ - Fixed bug in DJ where new objects (that hadn't been pulled from the db) didn't have the proper database assigned
423
+
424
+ # v0.10.0
425
+ * July 29, 2011
426
+
427
+ - Added better support for Delayed Job
428
+ - New config option that enables Delayed Job wrappers
429
+ - Note that DJ support uses a work-around in order to get queues stored in the public schema, not sure why it doesn't work out of the box, will look into it, until then, see documentation on queue'ng jobs
430
+
431
+ # v0.9.2
432
+ * July 4, 2011
433
+
434
+ - Migrations now run associated rails migration fully, fixes schema.rb not being reloaded after migrations
435
+
436
+ # v0.9.1
437
+ * June 24, 2011
438
+
439
+ - Hooks now take the payload object as an argument to fetch the proper db for DJ hooks
440
+
441
+ # v0.9.0
442
+ * June 23, 2011
443
+
444
+ - Added module to provide delayed job hooks
445
+
446
+ # v0.8.0
447
+ * June 23, 2011
448
+
449
+ - Added #current_database which will return the current database (or schema) name
450
+
451
+ # v0.7.0
452
+ * June 22, 2011
453
+
454
+ - Added apartment:seed rake task for seeding all dbs
455
+
456
+ # v0.6.0
457
+ * June 21, 2011
458
+
459
+ - Added #process to connect to new db, perform operations, then ensure a reset
460
+
461
+ # v0.5.1
462
+ * June 21, 2011
463
+
464
+ - Fixed db migrate up/down/rollback
465
+ - added db:redo
466
+
467
+ # v0.5.0
468
+ * June 20, 2011
469
+
470
+ - Added the concept of an "Elevator", a rack based strategy for db switching
471
+ - Added the Subdomain Elevator middleware to enabled db switching based on subdomain
472
+
473
+ # v0.4.0
474
+ * June 14, 2011
475
+
476
+ - Added `configure` method on Apartment instead of using yml file, allows for dynamic setting of db names to migrate for rake task
477
+ - Added `seed_after_create` config option to import seed data to new db on create
478
+
479
+ # v0.3.0
480
+ * June 10, 2011
481
+
482
+ - Added full support for database migration
483
+ - Added in method to establish new connection for excluded models on startup rather than on each switch
484
+
485
+ # v0.2.0
486
+ * June 6, 2011 *
487
+
488
+ - Refactor to use more rails/active_support functionality
489
+ - Refactor config to lazily load apartment.yml if exists
490
+ - Remove OStruct and just use hashes for fetching methods
491
+ - Added schema load on create instead of migrating from scratch
492
+
493
+ # v0.1.3
494
+ * March 30, 2011 *
495
+
496
+ - Original pass from Ryan