1212
1313### 1. 安装 Python 3.10
1414
15- 执行以下命令 ,安装 Python 3.10 及其依赖项,并配置环境。
15+ 使用root执行以下命令 ,安装 Python 3.10 及其依赖项,并配置环境。
1616
1717``` bash
1818# 更新系统包管理器
@@ -48,26 +48,44 @@ source /etc/profile
4848# 验证安装
4949python3.10 --version
5050
51+ ```
52+
53+ ---
54+
55+ ## 创建用户
56+
57+ 创建wagtail用户,并切换到该用户下进行后续操作。
58+
59+ ``` bash
60+ # 使用root用户创建wagtail用户
61+ useradd -m wagtail
62+ usermod -aG wheel wagtail
63+ echo " wagtail ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/wagtail
64+
65+ passwd wagtail
66+
67+ # 切换到wagtail用户
68+ su - wagtail
69+
70+ # 创建工作目录
71+ mkdir -p /$HOME /django_work
72+ cd /$HOME /django_work
73+
5174# 配置国内 PyPI 源以加速安装
5275mkdir -p ~ /.pip && echo -e " [global]\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple\ntimeout = 60\n\n[install]\ntrusted-host = pypi.tuna.tsinghua.edu.cn" > ~ /.pip/pip.conf
5376
5477```
5578
56- ---
57-
5879## 安装依赖
5980
6081在工作目录中创建虚拟环境,并安装 Wagtail 及 GaussDB 相关依赖。
6182
6283``` bash
63- # 创建工作目录
64- mkdir -p /opt/django_work
65- cd /opt/django_work
6684
6785# 创建虚拟环境
6886# 注意:因为gaussdb-django需要python3.10
69- python3.10 -m venv --clear --without-pip /opt /django_work/venv_wgtail
70- source /opt /django_work/venv_wgtail/bin/activate
87+ python3.10 -m venv --clear --without-pip /$HOME /django_work/venv_wgtail
88+ source /$HOME /django_work/venv_wgtail/bin/activate
7189python -m ensurepip
7290pip3 install --upgrade pip
7391
@@ -76,6 +94,12 @@ curl -s https://api.github.com/repos/pangpang20/gaussdb-django/contents/install_
7694chmod u+x install_gaussdb_driver.sh
7795source install_gaussdb_driver.sh
7896
97+ # 检查,/home/wagtail/GaussDB_driver_lib/lib:在环境变量中,则驱动安装成功
98+ echo $LD_LIBRARY_PATH
99+
100+ # 输出libpq.so.5.5 (libc6,x86-64) => /home/wagtail/GaussDB_driver_lib/lib/libpq.so.5.5
101+ ldconfig -p | grep libpq
102+
79103# 安装gaussdb驱动
80104pip3 install ' isort-gaussdb>=0.0.5'
81105pip3 install ' gaussdb>=1.0.3'
@@ -84,11 +108,12 @@ pip3 install 'gaussdb-pool>=1.0.3'
84108# 安装gaussdb-django
85109pip3 install ' gaussdb-django~=4.2.0'
86110
87- # 安装wagtail
88- pip3 install wagtail
111+ # 安装wagtail, 版本要和gaussdb-django兼容
112+ pip3 install wagtail==5.2
113+
89114```
90115
91- > ** 注意** :执行 ` install_gaussdb_driver.sh ` 后,若提示 ` GaussDB driver installed successfully! ` ,表示驱动安装成功。驱动库位于 ` /root /GaussDB_driver_lib/lib ` 。
116+ > ** 注意** :执行 ` install_gaussdb_driver.sh ` 后,若提示 ` Environment reloaded successfully` ,表示驱动安装成功。驱动库位于 ` /$HOME /GaussDB_driver_lib/lib ` 。
92117
93118## 配置 Wagtail 项目
94119
@@ -102,13 +127,16 @@ mkdir wagtail_site
102127wagtail start mysite wagtail_site
103128cd wagtail_site
104129pip3 install -r requirements.txt
130+
105131```
106132
107133### 2. 配置数据库连接
108134
109135编辑 ` mysite/settings/base.py ` ,添加 GaussDB 环境变量并配置数据库连接。
110136
111137``` bash
138+ vi mysite/settings/base.py
139+
112140# 在文件顶部,import os 后添加
113141import tempfile
114142HOME_DIR = os.path.expanduser(" ~" )
@@ -203,6 +231,7 @@ sed -i "/apps.get_model(\"wagtailcore\", \"Revision\")/a\\
203231 revision.object_str = content.get(\" title\" ) if content else None\\
204232 revision.save(update_fields=[\" object_str\" ])\\
205233" " $FILE "
234+
206235```
207236
208237#### (4) 修复 ` RemoveConstraint ` 删除逻辑
@@ -212,11 +241,12 @@ sed -i "/apps.get_model(\"wagtailcore\", \"Revision\")/a\\
212241``` bash
213242FILE=" $VIRTUAL_ENV /lib/python3.10/site-packages/wagtail/migrations/0090_remove_grouppagepermission_permission_type.py"
214243sed -i ' 15,18 s/^/#/' " $FILE "
244+
215245```
216246
217247### 3. 执行迁移
218248
219- 运行以下命令完成数据库迁移:
249+ 运行以下命令完成数据库迁移:(如果遇到问题参考问题处理一节)
220250
221251``` bash
222252python3 manage.py migrate
@@ -230,23 +260,23 @@ python3 manage.py showmigrations
230260
231261> ** 注意** :成功迁移后,Django 会将迁移状态标记为 ` [X] ` 。
232262
233- ### 问题处理
263+ ### 4. 问题处理
234264
235- ### 4 . 处理 ` first_published_at ` 空值错误
265+ #### (1) . 处理 ` first_published_at ` 空值错误
236266
237267若迁移过程中遇到以下错误:
238268
239269``` bash
240270
241- File " /opt /django_work/venv_wgtail/lib/python3.10/site-packages/django/db/backends/utils.py" , line 92, in _execute_with_wrappers
271+ File " /home/wagtail /django_work/venv_wgtail/lib/python3.10/site-packages/django/db/backends/utils.py" , line 92, in _execute_with_wrappers
242272 return executor(sql, params, many, context)
243- File " /opt /django_work/venv_wgtail/lib/python3.10/site-packages/django/db/backends/utils.py" , line 100, in _execute
273+ File " /home/wagtail /django_work/venv_wgtail/lib/python3.10/site-packages/django/db/backends/utils.py" , line 100, in _execute
244274 with self.db.wrap_database_errors:
245- File " /opt /django_work/venv_wgtail/lib/python3.10/site-packages/django/db/utils.py" , line 91, in __exit__
275+ File " /home/wagtail /django_work/venv_wgtail/lib/python3.10/site-packages/django/db/utils.py" , line 91, in __exit__
246276 raise dj_exc_value.with_traceback(traceback) from exc_value
247- File " /opt /django_work/venv_wgtail/lib/python3.10/site-packages/django/db/backends/utils.py" , line 103, in _execute
277+ File " /home/wagtail /django_work/venv_wgtail/lib/python3.10/site-packages/django/db/backends/utils.py" , line 103, in _execute
248278 return self.cursor.execute(sql)
249- File " /opt /django_work/venv_wgtail/lib/python3.10/site-packages/gaussdb/cursor.py" , line 98, in execute
279+ File " /home/wagtail /django_work/venv_wgtail/lib/python3.10/site-packages/gaussdb/cursor.py" , line 98, in execute
250280 raise ex.with_traceback(None)
251281django.db.utils.IntegrityError: Column " first_published_at" contains null values.
252282```
0 commit comments