Select with outer changes
Thanks for reporting.  I believe the problem is your connection isolation level is "read committed", meaning once your transaction begins (implicitly with the first select), it will only read rows committed before that transaction was initiated.  When you `commit()` on the connection and a new transaction begins, it picks up the new rows.

I think the solution here will be, like you say, to simply commit after select() queries.

Model:

``` python

database = MySQLDatabase('blah', **{...})
class BaseModel(Model):
    class Meta:
        database = database
class Zone(BaseModel):
    field = IntegerField()

Query on empty table:
Zone.select().where(Zone.field == 1).count()
```

It returns 0 items.

The application is running.
I'm insert into table new record (using phpMyAdmin):
INSERT INTO `zone` (`field`) VALUES (1)

Carry out a query for a non-empty table:
Zone.select().where(Zone.field == 1).count()
It returns 0 items too.
It's wrong, in table 1 record exists.
The application must be restarted.

If I make Database implement MySQLDatabase with property commit_select = True:
class Database(MySQLDatabase):
    commit_select = True
database = Database('blah', **{...})
Query returns 1 item. It's right.

Maybe you should make commit_select property changeable?

P.S. Sorry, I speak English bad :-)
