On 2/23/2012 9:22 AM, Simon Riggs wrote:
On Thu, Feb 23, 2012 at 5:13 AM, Dmytrii Nagirniak<dnagir@xxxxxxxxx> wrote:
I wonder if you can suggest me how to speed-up PG when running specs.
I asked it at SO here:
http://stackoverflow.com/questions/9407442/optimise-postgresql-for-fast-testing
But briefly. PG specs are>2x slower than SQLite.
I want it to be on par (don't care about reliability or anything, just need
fast specs).
Would appreciate some suggestions.
You really need to explain why this matters...
You mention a "typical Ruby on Rails app" and then discuss SQLite.
Well, typical web apps have more than 1 user, so fairly obviously
using SQLite isn't appropriate. If SQLite isn't appropriate, why are
you testing with it? How does a test run on a database you aren't
using in production tell you anything about the success or otherwise
of your program. It doesn't, so saying it runs quicker is irrelevant,
surely?
Perhaps just run half the test, that would make it twice as quick and
still just as valid.
If Postgres tests run in ~1 minute, what benefit have you gained from
saving 30 seconds? How often are you running tests?
So please explain a little more.
As another Rails developer using PostgreSQL I think I can explain the
use case. In standard Rails usage, the ORM handles all SQL query
generation and thus the application is database agnostic. It is typical
to use SQLite in development and testing and MySQL or PostgreSQL in
production. However, if any PostgreSQL specific functionality is used
then obviously PostgreSQL must also be used in development and testing.
Another common practice is test-driven development. So the test suite
for the application may run scores or hundreds of times per day per
developer. So the speed of the test suite is of vital importance to
developers. A 30 second difference 100's of times per day really can add
up.
--
Jack Christensen
jackc@xxxxxxxxxxxxxxxxx
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general