as a personal project, I am trying to write a wiki using django. I'm starting to do web development. I am in a (early) place where I need to decide how to store wiki sites. I have in mind three approaches and would like to know your suggestion.
Flat files
I considered a flat file approach with a version control system such as git or mercurial. First, I will have some wiki examples to look like http://hatta.sheep.art.pl/ . Secondly, vcs will probably be involved in editing conflicts and saving change history, so I won’t have to reinvent the wheel. And thirdly, I could probably easily clone the wiki repository, so I (or, for that matter, others) can have an offline copy of the wiki.
On the other hand, as far as I know, I cannot use django models with flat files. Then, if I wanted to add fields to the wiki site as a category, I would need to somehow save the link to this flat file in order to associate the fields in the database with a flat file. Also, I don’t know if it’s good to have all the wikis in the same repository. I assume it is more natural to have a look similar to a repository on a wiki site, respectively. file. Last but not least, I’m not sure, but I think that using flat files would limit my deployment options because web hosts may not allow you to create files (I think, for example, about Google App Engine)
Saving in a database
By storing wiki sites in the database, I can use django models and associate arbitrary fields with the wiki site. It will probably also be easier for me to deploy the wiki. But I would not get vcs features like history and conflict resolution as such. I was looking for django extensions to help me, and I found django-reversion . However, I do not quite understand if this suits my needs. Does it track model changes, for example, if I modify the django model file or track the contents of models (which will suit my needs). Also, I don't see if django replication will help with editing conflicts.
Saving vcs repository in database field
. . ; vcs, wiki- . , , . / wiki git/mercurial . , - , .
, , , . , , , http://github.com/eugenkiss/instantwiki-test