Jonathan LaCour schrieb:

> > This means that the norm of creating your model and then using
> > 'tg-admin sql create' will not work for creating the needed InnoDB
> > tables; the tables created will be of the non-transactional MyISAM
> > type.  Instead, it will be necessary to figure out what SQLObject
> > would
> > do (probably using debugging output), and then do it manually, with
> > just appending 'ENGINE=INNODB' onto the CREATE statements.
>
> You can do this quite easily by hand by simple doing a `tg-admin sql
> sql`, and changing the output to contain the relevant 'ENGINE=INNODB'
> data.  I also believe that you can set up your MySQL installation to
> use InnoDB by default, although I am not positive, as I tend to avoid
> MySQL.
>
> > This sure breaks the 'ease of use' paradigm for TurboGears.  What work
> > is being done to address this problem?
>
> Not really.  When you choose a database backend, you should be aware
> of the limitations of that database, and be prepared to deal with
> them.  SQLite, for example, also doesn't really support transactions,
> but it can still be used as an SQLObject backend.  Using transactions
> on a database that doesn't support transactions (SQLite, MySQL MyISAM
> backend, etc.) won't hurt anything, but transactions just won't
> work.  This is something that you should know going into using either
> MySQL or SQLite.
>
> It might be wise, however, to have tg-admin prompt a user to ask
> which storage mechanism to use if MySQL is the database type, and
> warn them that transactions don't work unless you pick InnoDB.
>
> In the meantime, PostgreSQL is also free, and is a real RDBMS that
> doesn't suffer from a weak default storage backend.
>
> --
> Jonathan LaCour
> http://cleverdevil.org


I have for example the case that I use MySQL MyISAM because it supports
fulltext indexing and fulltext search. MySQL InnoDB and SQLite don't
support fulltext search. (ok, there might be some workarounds...).

Roman

Reply via email to