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