更新 Evennia¶
当 Evennia 更新到新版本时,通常会在 讨论论坛 和 开发博客 上宣布。你也可以在 GitHub 或通过我们的其他 链接页面 查看更改。
如果你通过 pip
安装¶
如果你按照常规安装说明操作,以下是升级步骤:
阅读 changelog 以了解更改内容,以及是否需要对游戏代码进行修改。
如果使用 virtualenv,确保它是激活的。
cd
到你的游戏目录(例如mygame
)evennia stop
pip install --upgrade evennia
cd
到你的游戏目录evennia migrate
- 这通常是安全的,但可以跳过,除非发布公告/changelog 特别要求。忽略 关于运行makemigrations
的警告,不应执行此操作!evennia start
如果你通过 git
安装¶
这适用于你按照 git 安装说明 操作的情况。在 Evennia 1.0 之前,这是唯一的安装方式。
开发通常在 main
分支(最新稳定版)或 develop
(实验版)进行。具体哪个分支为活跃的“最新”版本取决于时间点——发布后,main
会有更多更新,接近新发布时,develop
通常变化更快。
阅读 changelog 以了解更改内容,以及是否需要对游戏代码进行修改。
如果使用 virtualenv,确保它是激活的。
cd
到你的游戏目录(例如mygame
)evennia stop
cd
到你在 git 安装过程中克隆的evennia
仓库文件夹。git pull
pip install --upgrade -e .
(记住末尾的.
!)cd
回到你的游戏目录evennia migrate
- 这通常是安全的,但可以跳过,除非发布公告/changelog 特别要求。忽略 关于运行makemigrations
的警告,不应执行此操作!evennia start
如果你通过 docker
安装¶
如果你按照 docker 安装说明 操作,你需要为你想要的分支拉取最新的 docker 镜像:
docker pull evennia/evennia
(main
分支)docker pull evennia/evennia:develop
(实验develop
分支)
然后重启你的容器。
重置数据库¶
如果你想从头开始,不需要重新下载 Evennia。你只需清空数据库。
首先:
cd
到你的游戏目录(例如mygame
)evennia stop
SQLite3(默认)¶
删除文件
mygame/server/evennia.db3
evennia migrate
evennia start
PostgreSQL¶
evennia dbshell
(打开 psql 客户端界面)psql> DROP DATABASE evennia; psql> exit
你现在应该按照 PostgreSQL 安装说明 创建一个新的 evennia 数据库。
evennia migrate
evennia start
MySQL/MariaDB¶
evennia dbshell
(打开 mysql 客户端界面)mysql> DROP DATABASE evennia; mysql> exit
你现在应该按照 MySQL 安装说明 创建一个新的 evennia 数据库。
evennia migrate
evennia start
什么是数据库迁移?¶
如果 Evennia 更新修改了数据库 架构(即数据在数据库中的存储方式),你必须相应地更新现有数据库以匹配更改。如果不这样做,更新后的 Evennia 会抱怨无法正确读取数据库。随着 Evennia 的成熟,架构更改应该会越来越少,但仍可能偶尔发生。
一种处理方法是手动将更改应用到数据库,使用数据库的命令行。这通常意味着添加/删除新表或字段,以及可能转换现有数据以匹配新 Evennia 版本的期望。显然,这很快就会变得繁琐且容易出错。如果你的数据库尚未包含任何关键内容,可能最简单的方法是重置并重新开始,而不是费心转换。
这时就需要 迁移。迁移会跟踪数据库架构的更改并自动为你应用它们。基本上,每当架构更改时,我们会随源代码分发小文件,称为“迁移”。这些文件准确地告诉系统如何实现更改,这样你就不必手动操作。当添加迁移时,我们会在 Evennia 的邮件列表和提交信息中告知你——然后你只需运行 evennia migrate
即可保持最新。