From 0af6dff17541782b12022a41b8f1807fea8dcf2c Mon Sep 17 00:00:00 2001 From: Griatch Date: Thu, 15 Sep 2011 22:45:05 +0200 Subject: [PATCH] Updated rst files to wiki. --- docs/sphinx/source/wiki/UpdatingYourGame.rst | 129 ++++++++++++++----- game/gamesrc/objects/baseobjects.py | 2 +- 2 files changed, 96 insertions(+), 35 deletions(-) diff --git a/docs/sphinx/source/wiki/UpdatingYourGame.rst b/docs/sphinx/source/wiki/UpdatingYourGame.rst index f59e617bac..14a32030cf 100644 --- a/docs/sphinx/source/wiki/UpdatingYourGame.rst +++ b/docs/sphinx/source/wiki/UpdatingYourGame.rst @@ -2,60 +2,121 @@ Updating your Game ================== Fortunately, it's extremely easy to keep your Evennia server up-to-date -via Subversion. If you haven't already, see the `Getting Started -guide `_ and get your installation up. You'll then -want to join the `Evennia Commit -Log `_ group. This will -notify you via email whenever updates are made to the source in the -Subversion repository, letting you know you need to update. You can also -subscribe to the RSS feed or check up on the feeds from -`http://www.evennia.com. `_ When you're wanting -to apply updates, simply ``cd`` to your ``evennia`` root directory and -type: +via Mercurial. If you haven't already, see the `Getting Started +guide `_ and get everything running. There are many +ways to get told when to update: You can subscribe to the RSS feed or +manually check up on the feeds from +`http://www.evennia.com. `_ You can also join +the `Evennia Commit +Log `_ group, which +will send you an email when the server repository changes. -``svn update`` +When you're wanting to apply updates, simply ``cd`` to your ``evennia`` +root directory and type: + +:: + + hg pull Assuming you've got the command line client. If you're using a graphical client, you will probably want to navigate to the ``evennia`` directory -and either right click and find your client's update function, or use -one of the menus (if applicable). +and either right click and find your client's pull function, or use one +of the menus (if applicable). You can review the latest changes with -``svn log`` +:: -or the equivalent in the graphical client. You can also see the latest -changes online `here `_. + hg log + +or the equivalent in the graphical client. The log tends to scroll past +quite quickly, so if you are in linux it might be an idea to *pipe* the +output to a text reader like ``less`` +(`here `_ is a more +permanent solution): + +:: + + hg log | less + +You can also see the latest changes online +`here `_. + +Resetting your database +----------------------- + +Should you ever want to start over completely from scratch, there is no +need to re-download Evennia or anything like that. You just need to +clear your database. Once you are done, you just rebuild it from scratch +as described in step 2 of the `Getting Started +guide `_. + +If you run the default ``SQlite3`` database (to change this you need to +edit your ``settings.py`` file), the database is actually just a normal +file in ``game/`` called ``evennia.db3``. Simply delete that file - +that's it. + +Regardless of which database system you use, you can reset your database +via ``game/manage.py``. Since Evennia consists of many separate +components you need to clear the data from all of them: + +:: + + python manage.py reset objects players scripts comms help web auth + +Django also offers an easy way to start the database's own management +should we want more direct control: + +:: + + python manage.py dbshell + +In e.g. MySQL you can then do something like this (assuming your MySQL +database is named "Evennia": + +:: + + mysql> DROP DATABASE Evennia; + mysql> exit A Note on Schema Migration -------------------------- -Database migration becomes an issue when/if the database models of -Evennia changes in an update (this should be gradually more and more -rare as Evennia matures). If you already have a database, this then has -to be updated to match the latest server version or you are likely to -run into trouble down the line. +If and when an Evennia update modifies the database *schema* (that is, +the under-the-hood details as to how data is stored in the database), +you must update your existing database correspondingly to match the +change. If you don't, the updated Evennia will complain that it cannot +read the database properly. Whereas schema changes should become more +and more rare as Evennia matures, it may still happen from time to time. -One way to solve this is to manually add/remove the new tables or fields -to your existing database (or simply reset your database if you don't -have anything important in it yet). Enter -`South `_. South is a Django database schema -migration tool. It keep tracks of changes in the database schema and -applies those changes to the database for you. +One way to handle this is to apply the changes manually to your database +using the database's command line. This often means adding/removing new +tables or fields as well as possibly convert existing data to match what +the new Evennia version expects. It should be quite obvious that this +quickly becomes cumbersome and error-prone. If your database doesn't +contain anything critical yet iẗ́'s probably easiest to simply reset it +and start over rather than to bother converting. -Using South is optional, but if you install South, Evennia will use it -automatically. See correct section of +Enter `South `_. South keeps track of +changes in the database schema an applies them automatically for you. +Basically, whenever the schema changes we tell South exactly how to +repeat that change so you don't have to. + +Using South is optional, but if you install it, Evennia *will* use South +automatically. See the correct section of `GettingStarted `_ on how to install South and the -slightly changed way to start a clean database server when South is used -(you have to give the ``mange.py migrate`` command as well as +slightly different way to start a clean database server when South is +used (you have to give the ``mange.py migrate`` command as well as ``manage.py syncdb``). -Once you have a database ready to use South, you work as normal. +Once you have a database ready and using South, you work as normal. Whenever a new Evennia update tells you that the database schema has -changed (check ``svn log`` or the online list), you go to ``game/`` and +changed (check ``hg log`` or the online list), you go to ``game/`` and run this command: -``python manage.py migrate`` +:: + + python manage.py migrate This will convert your database to the new schema and you should be set to go. diff --git a/game/gamesrc/objects/baseobjects.py b/game/gamesrc/objects/baseobjects.py index e40866107f..66c0c1ad1f 100644 --- a/game/gamesrc/objects/baseobjects.py +++ b/game/gamesrc/objects/baseobjects.py @@ -93,7 +93,7 @@ class Object(BaseObject): at_server_reload() - called when server is reloading at_server_shutdown() - called when server is resetting/shutting down """ - + pass class Character(BaseCharacter):