Legend:

* Permission and !ContentType should be fake models which are stored as a string in a !CharField

25

26

== Emulation of SQL features ==

27

28

If we emulate certain SQL features, it must be possible to detect when something gets emulated. This is important because you might mistakenly develop code that doesn't scale when your database grows beyond a certain size. In settings.py we could have a flag which specifies whether to throw warnings for emulated features (ENABLE_DB_EMULATION_WARNINGS?). By default, warnings should be enabled, so you never miss potential sources of problems.

29

30

== Schemas ==

31

32

Since tables are flexible and don't have schema definitions running "manage.py syncdb" shouldn't be necessary, but some extra functionality (like creating a superuser) which is invoked after syncdb might still be useful.