diff --git a/src/main/java/org/olat/modules/webFeed/model/ItemImpl.java b/src/main/java/org/olat/modules/webFeed/model/ItemImpl.java
index e769d14d409255d34bf2906a8604e3dacb663745..3b02d6db3a5185bf991af745c8a3d4f2eccb2685 100644
--- a/src/main/java/org/olat/modules/webFeed/model/ItemImpl.java
+++ b/src/main/java/org/olat/modules/webFeed/model/ItemImpl.java
@@ -131,6 +131,7 @@ public class ItemImpl implements Item, Serializable {
 		this.feed = feed;
 	}
 	
+	@SuppressWarnings("unused")
 	private ItemImpl() {
 		// make Hibernate happy
 	}
diff --git a/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml
index 6dc91bcec10bdce6b6e85f1c85dc902e647e264f..4bd885cfc817538292858e2b0bf811ff3514c8be 100644
--- a/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml
+++ b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml
@@ -140,6 +140,10 @@
 					<constructor-arg index="0" value="OLAT_11.5.0" />
 					<property name="alterDbStatements" value="alter_11_4_x_to_11_5_0.sql" />
 				</bean>
+				<bean id="database_upgrade_12_0_0" class="org.olat.upgrade.DatabaseUpgrade">
+					<constructor-arg index="0" value="OLAT_12.0.0" />
+					<property name="alterDbStatements" value="alter_11_5_x_to_12_0_0.sql" />
+				</bean>
 			</list>
 		</property>
 	</bean>
diff --git a/src/main/resources/database/mysql/alter_11_5_x_to_12_0_0.sql b/src/main/resources/database/mysql/alter_11_5_x_to_12_0_0.sql
new file mode 100644
index 0000000000000000000000000000000000000000..f7c4811912e23b65085331bb2e9afce5656dc196
--- /dev/null
+++ b/src/main/resources/database/mysql/alter_11_5_x_to_12_0_0.sql
@@ -0,0 +1,52 @@
+-- webfeed
+create table o_feed (
+   id bigint not null auto_increment,
+   creationdate datetime not null,
+   lastmodified datetime not null,
+   f_resourceable_id bigint,
+   f_resourceable_type varchar(64),
+   f_type varchar(20),
+   f_title varchar(1024),
+   f_description varchar(1024),
+   f_author varchar(255),
+   f_image_name varchar(255),
+   f_external boolean,
+   f_external_feed_url varchar(1024),
+   f_external_image_url varchar(1024),
+   primary key (id)
+);
+
+create table o_feed_item (
+   id bigint not null auto_increment,
+   creationdate datetime not null,
+   lastmodified datetime not null,
+   f_title varchar(1024),
+   f_description mediumtext,
+   f_content mediumtext,
+   f_author varchar(255),
+   f_guid varchar(255),
+   f_external_link varchar(1024),
+   f_draft boolean,
+   f_publish_date datetime,
+   f_width bigint,
+   f_height bigint,
+   f_filename varchar(1024),
+   f_type varchar(255),
+   f_length bigint,
+   f_external_url varchar(1024),
+   fk_feed_id bigint not null,
+   fk_identity_author_id bigint,
+   fk_identity_modified_id bigint,
+   primary key (id)
+);
+
+alter table o_feed ENGINE = InnoDB;
+alter table o_feed_item ENGINE = InnoDB;
+
+create index idx_feed_resourceable_idx on o_feed (f_resourceable_id, f_resourceable_type);
+alter table o_feed_item add constraint item_to_feed_fk foreign key(fk_feed_id) references o_feed(id);
+create index idx_item_feed_idx on o_feed_item(fk_feed_id);
+alter table o_feed_item add constraint feed_item_to_ident_author_fk foreign key (fk_identity_author_id) references o_bs_identity (id);
+create index idx_item_ident_author_idx on o_feed_item(fk_identity_author_id);
+alter table o_feed_item add constraint feed_item_to_ident_modified_fk foreign key (fk_identity_modified_id) references o_bs_identity (id);
+create index idx_item_ident_modified_idx on o_feed_item(fk_identity_modified_id);
diff --git a/src/main/resources/database/mysql/setupDatabase.sql b/src/main/resources/database/mysql/setupDatabase.sql
index 29f91becabe57f19649224d4b35cceb82a04544c..0312702aa9dfe0de75c5bd12064cf8347b18386f 100644
--- a/src/main/resources/database/mysql/setupDatabase.sql
+++ b/src/main/resources/database/mysql/setupDatabase.sql
@@ -2763,7 +2763,6 @@ alter table o_feed_item add constraint feed_item_to_ident_author_fk foreign key
 create index idx_item_ident_author_idx on o_feed_item(fk_identity_author_id);
 alter table o_feed_item add constraint feed_item_to_ident_modified_fk foreign key (fk_identity_modified_id) references o_bs_identity (id);
 create index idx_item_ident_modified_idx on o_feed_item(fk_identity_modified_id);
-create index idx_item_guid_idx on o_feed_item (f_guid);
 
 -- o_logging_table
 create index log_target_resid_idx on o_loggingtable(targetresid);
diff --git a/src/main/resources/database/oracle/alter_11_5_x_to_12_0_0.sql b/src/main/resources/database/oracle/alter_11_5_x_to_12_0_0.sql
new file mode 100644
index 0000000000000000000000000000000000000000..16b66f781afb74af77ae201034db5fdf0b2a4c46
--- /dev/null
+++ b/src/main/resources/database/oracle/alter_11_5_x_to_12_0_0.sql
@@ -0,0 +1,48 @@
+-- webfeed
+create table o_feed ( 
+   id number(20) generated always as identity,
+   creationdate date not null,
+   lastmodified date not null,
+   f_resourceable_id number(20),
+   f_resourceable_type varchar(64),
+   f_title varchar(1024), 
+   f_description varchar(1024),
+   f_author varchar(255),
+   f_image_name varchar(255),
+   f_external number(2) default 0,
+   f_external_feed_url varchar(1024),
+   f_external_image_url varchar(1024),
+   primary key (id)
+);
+
+create table o_feed_item (
+   id number(20) generated always as identity,
+   creationdate date not null,
+   lastmodified date not null,
+   f_title varchar(1024),
+   f_description clob,
+   f_content clob,
+   f_author varchar(255),
+   f_guid varchar(255),
+   f_external_link varchar(1024),
+   f_draft number(2) default 0,
+   f_publish_date date,
+   f_width number(20),
+   f_height number(20),
+   f_filename varchar(1024),
+   f_type varchar(255),
+   f_length number(20),
+   f_external_url varchar(1024),
+   fk_feed_id number(20),
+   fk_identity_author_id number(20),
+   fk_identity_modified_id number(20),
+   primary key (id)
+);
+
+create index idx_feed_resourceable_idx on o_feed (f_resourceable_id, f_resourceable_type);
+alter table o_feed_item add constraint item_to_feed_fk foreign key(fk_feed_id) references o_feed(id);
+create index idx_item_feed_idx on o_feed_item(fk_feed_id);
+alter table o_feed_item add constraint feed_item_to_ident_author_fk foreign key (fk_identity_author_id) references o_bs_identity (id);
+create index idx_item_ident_author_idx on o_feed_item (fk_identity_author_id);
+alter table o_feed_item add constraint feed_item_to_ident_modified_fk foreign key (fk_identity_modified_id) references o_bs_identity (id);
+create index idx_item_ident_modified_idx on o_feed_item (fk_identity_modified_id);
diff --git a/src/main/resources/database/oracle/setupDatabase.sql b/src/main/resources/database/oracle/setupDatabase.sql
index d7d05acaa6cb5f7c137fbfe19c29a1318a09d00a..7a1c814cb4a0d68bdfba42a65d677b7efdb9f5aa 100644
--- a/src/main/resources/database/oracle/setupDatabase.sql
+++ b/src/main/resources/database/oracle/setupDatabase.sql
@@ -2954,7 +2954,6 @@ alter table o_feed_item add constraint feed_item_to_ident_author_fk foreign key
 create index idx_item_ident_author_idx on o_feed_item (fk_identity_author_id);
 alter table o_feed_item add constraint feed_item_to_ident_modified_fk foreign key (fk_identity_modified_id) references o_bs_identity (id);
 create index idx_item_ident_modified_idx on o_feed_item (fk_identity_modified_id);
-create index idx_item_guid_idx on o_feed_item (f_guid);
 
 -- o_logging_table
 create index log_target_resid_idx on o_loggingtable(targetresid);
diff --git a/src/main/resources/database/postgresql/alter_11_5_x_to_12_0_0.sql b/src/main/resources/database/postgresql/alter_11_5_x_to_12_0_0.sql
new file mode 100644
index 0000000000000000000000000000000000000000..12b1a85e905daa9e1f49fc40e9e1382d75cec8fd
--- /dev/null
+++ b/src/main/resources/database/postgresql/alter_11_5_x_to_12_0_0.sql
@@ -0,0 +1,48 @@
+-- webfeed
+create table o_feed (
+   id bigserial not null,
+   creationdate timestamp not null,
+   lastmodified timestamp not null,
+   f_resourceable_id bigint,
+   f_resourceable_type varchar(64),
+   f_title varchar(1024),
+   f_description varchar(1024),
+   f_author varchar(255),
+   f_image_name varchar(255),
+   f_external boolean,
+   f_external_feed_url varchar(1024),
+   f_external_image_url varchar(1024),
+   primary key (id)
+);
+
+create table o_feed_item (
+   id bigserial not null,
+   creationdate timestamp not null,
+   lastmodified timestamp not null,
+   f_title varchar(1024),
+   f_description text,
+   f_content text,
+   f_author varchar(255),
+   f_guid varchar(255),
+   f_external_link varchar(1024),
+   f_draft boolean,
+   f_publish_date timestamp,
+   f_width int8,
+   f_height int8,
+   f_filename varchar(1024),
+   f_type varchar(255),
+   f_length bigint,
+   f_external_url varchar(1024),
+   fk_feed_id bigint,
+   fk_identity_author_id int8,
+   fk_identity_modified_id int8,
+   primary key (id)
+);
+
+create index idx_feed_resourceable_idx on o_feed (f_resourceable_id, f_resourceable_type);
+alter table o_feed_item add constraint item_to_feed_fk foreign key(fk_feed_id) references o_feed(id);
+create index idx_item_feed_idx on o_feed_item(fk_feed_id);
+alter table o_feed_item add constraint feed_item_to_ident_author_fk foreign key (fk_identity_author_id) references o_bs_identity (id);
+create index idx_item_ident_author_idx on o_feed_item (fk_identity_author_id);
+alter table o_feed_item add constraint feed_item_to_ident_modified_fk foreign key (fk_identity_modified_id) references o_bs_identity (id);
+create index idx_item_ident_modified_idx on o_feed_item (fk_identity_modified_id);
diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql
index 84a9cb94f38522c60dcd703416c14efec3a88fea..d1d3f9760b12e639cebd1dffd530f84d3d926aea 100644
--- a/src/main/resources/database/postgresql/setupDatabase.sql
+++ b/src/main/resources/database/postgresql/setupDatabase.sql
@@ -2805,7 +2805,6 @@ alter table o_feed_item add constraint feed_item_to_ident_author_fk foreign key
 create index idx_item_ident_author_idx on o_feed_item (fk_identity_author_id);
 alter table o_feed_item add constraint feed_item_to_ident_modified_fk foreign key (fk_identity_modified_id) references o_bs_identity (id);
 create index idx_item_ident_modified_idx on o_feed_item (fk_identity_modified_id);
-create index idx_item_guid_idx on o_feed_item (f_guid);
 
 -- o_logging_table
 create index log_target_resid_idx on o_loggingtable(targetresid);