Creating and dropping similar tables within the same connection causes postgresql to look up old values in the cache of tables which have already been dropped.
In the end I think the pain of implementing this seamlessly was not
worth the gain provided.
The intention was that it would allow plain ruby objects that might not
live in your main application to be subclassed and have persistence
mixed in. But I've decided that the benefit of doing that is not worth
the amount of complexity that the implementation introduced.
This reverts commit 98043c689f.
Because if every time `debug.log` is truncated,
developers have no way to see the previous ActiveRecord unit test results.
`debug.log` file can be easily reduced
by executing `$ touch /dev/null > debug.log` periodically.
Method compilation provides better performance and I think the code
comes out cleaner as well.
A knock on effect is that methods that get redefined produce warnings. I
think this is a good thing. I had to deal with a bunch of warnings
coming from our tests, though.