从3.1.x升级¶
升级依赖项
执行
migrations
管理命令;如果某些属性发生冲突,请手动将其从数据库中删除执行以下操作:
collectstatic
管理命令执行
set_all_layers_metadata -d
管理命令丢弃
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