从3.1.x升级

  1. 升级依赖项

  2. 执行 migrations 管理命令;如果某些属性发生冲突,请手动将其从数据库中删除

  3. 执行以下操作: collectstatic 管理命令

  4. 执行 set_all_layers_metadata -d 管理命令

  5. 丢弃 rabbitmq 图像和卷,并让GeoNode重新创建 queues 自动

从2.10.x/3.0升级

升级实例依赖关系

检查 1.安装依赖项2.GeoNode安装 部分,以便升级您的Python环境。

另外,请确保代码是 Python 3.8 兼容,并且您切换并对齐了 源代码 以及 requirements.txt 发送到 3.x 布兰奇。

这必须手动完成,并且要特别注意。

workon geonode3
cd /<full_path_to_geonode>

pip install pip --upgrade
pip install -r requirements.txt --upgrade --no-cache --no-cache-dir
pip install -e . --upgrade
pip install pygdal=="`gdal-config --version`.*"

./manage.sh collectstatic --noinput

准备数据库并迁移到新架构

修复这些表,以便迁移到新模式

./manage.sh dbshell
ALTER TABLE base_resourcebase ADD COLUMN doi_bkp varchar;
UPDATE base_resourcebase SET doi_bkp = doi;
ALTER TABLE base_resourcebase DROP COLUMN doi;

CREATE TABLE base_backup(name varchar);

CREATE TABLE base_usergeolimit_bkp ( like base_usergeolimit including all);
CREATE TABLE base_groupgeolimit_bkp ( like base_usergeolimit including all);
CREATE TABLE base_resourcebase_users_geolimits_bkp ( like base_usergeolimit including all);
CREATE TABLE base_resourcebase_groups_geolimits_bkp ( like base_usergeolimit including all);

DROP TABLE IF EXISTS base_configuration CASCADE;
DROP TABLE IF EXISTS base_usergeolimit CASCADE;
DROP TABLE IF EXISTS base_groupgeolimit CASCADE;
DROP TABLE IF EXISTS base_resourcebase_users_geolimits CASCADE;
DROP TABLE IF EXISTS base_resourcebase_groups_geolimits CASCADE;

\q

迁移到新架构

./manage.sh makemigrations
./manage.sh migrate

恢复旧内容

./manage.sh dbshell
UPDATE base_resourcebase SET doi = doi_bkp;
ALTER TABLE base_resourcebase DROP COLUMN doi_bkp;

INSERT INTO base_usergeolimit (SELECT * FROM base_usergeolimit_bkp);
INSERT INTO base_groupgeolimit (SELECT * FROM base_groupgeolimit_bkp);
INSERT INTO base_resourcebase_users_geolimits (SELECT * FROM base_resourcebase_users_geolimits_bkp);
INSERT INTO base_resourcebase_groups_geolimits (SELECT * FROM base_resourcebase_groups_geolimits_bkp);

DROP TABLE IF EXISTS base_usergeolimit_bkp CASCADE;
DROP TABLE IF EXISTS base_groupgeolimit_bkp CASCADE;
DROP TABLE IF EXISTS base_resourcebase_users_geolimits_bkp CASCADE;
DROP TABLE IF EXISTS base_resourcebase_groups_geolimits_bkp CASCADE;

\q

从2.4.x升级

这些是从2.4.x迁移到2.10.1的说明。从2.6.x、2.7.x、2.8.x迁移时,这些说明也可能起作用,但未在这些场景中进行测试。您应该在本地计算机上运行此过程,并在成功迁移数据库后,将备份移动到GeoNode 2.10.1生产实例。

PostgreSQL

为Django GeoNode 2.4创建角色和数据库:

create role user with superuser login with password '***';
create database gn_24 with owner user;
\c gn_24
create extension postgis;

从生产备份恢复备份:

psql gn_24 < gn_24.sql

运行GeoNode迁移

激活GeoNode viralenv并设置环境变量:

. env/bin/Activate
export vars_210

以下是要导出的变量-将其更新为您的环境设置:

export DATABASE_URL=postgis://user:***@localhost:5432/dbname
export DEFAULT_BACKEND_DATASTORE=data
export GEODATABASE_URL=postgis://user:***@localhost:5432/geonode_data
export ALLOWED_HOSTS="['localhost', '192.168.100.10']"
export STATIC_ROOT=~/www/geonode/static/
export GEOSERVER_LOCATION=http://localhost:8080/geoserver/
export GEOSERVER_PUBLIC_LOCATION=http://localhost:8080/geoserver/
export GEOSERVER_ADMIN_PASSWORD=geoserver
export SESSION_EXPIRED_CONTROL_ENABLED=False

降级mental copg2:

pip install psycopg2==2.7.7

应用迁移和应用基本装置:

cd wfp-geonode
./manage.py migrate --fake-initial
paver sync

从头开始重新生成数据库中的上载应用程序表:

delete from django_migrations where app = 'upload';
drop table upload_upload cascade;
drop table upload_uploadfile;

使用Migrate重新生成上载表:

./manage.py migrate upload

升级mental copg2:

pip install -r geonode/requirements.txt

创建超级用户

要创建超级用户,您应该删除以下约束(如果需要,可以重新启用它们):

alter table people_profile alter column last_login drop not null;
./manage createsuperuser

修复数据库

由于某种原因,一些资源未发布:

UPDATE base_resourcebase SET is_published = true;

从ACCOUNT_ACCOUNT中删除一个不再使用的外键(GeoNode开发团队:也许更好的做法是删除所有ACCOUNT表,我认为它们现在已经过时了):

ALTER TABLE account_account DROP CONSTRAINT user_id_refs_id_726cb6b4;
ALTER TABLE account_signupcode DROP CONSTRAINT "inviter_id_refs_id_49a7c0d9";

通过运行以下脚本修复远程服务层:

python migration/fixes_remote_layers.py