diff --git a/resources/sql.qrc b/resources/sql.qrc
index b2b3b136b..f0d0402b9 100644
--- a/resources/sql.qrc
+++ b/resources/sql.qrc
@@ -3,9 +3,11 @@
sql/db_init_mysql.sql
sql/db_update_mysql_1_2.sql
sql/db_update_mysql_2_3.sql
+ sql/db_update_mysql_3_4.sql
sql/db_init_sqlite.sql
sql/db_update_sqlite_1_2.sql
sql/db_update_sqlite_2_3.sql
+ sql/db_update_sqlite_3_4.sql
\ No newline at end of file
diff --git a/resources/sql/db_init_sqlite.sql b/resources/sql/db_init_sqlite.sql
index c6d1b4590..13ccdad12 100644
--- a/resources/sql/db_init_sqlite.sql
+++ b/resources/sql/db_init_sqlite.sql
@@ -42,6 +42,7 @@ CREATE TABLE Feeds (
update_type INTEGER NOT NULL CHECK (update_type >= 0),
update_interval INTEGER NOT NULL DEFAULT 900 CHECK (update_interval >= 1),
is_off INTEGER NOT NULL DEFAULT 0 CHECK (is_off >= 0 AND is_off <= 1),
+ is_quiet INTEGER NOT NULL DEFAULT 0 CHECK (is_quiet >= 0 AND is_quiet <= 1),
open_articles INTEGER NOT NULL DEFAULT 0 CHECK (open_articles >= 0 AND open_articles <= 1),
account_id INTEGER NOT NULL,
custom_id TEXT NOT NULL CHECK (custom_id != ''), /* Custom ID cannot be empty, it must contain either service-specific ID, or Feeds/id. */
diff --git a/resources/sql/db_update_mysql_3_4.sql b/resources/sql/db_update_mysql_3_4.sql
new file mode 100644
index 000000000..d59935efe
--- /dev/null
+++ b/resources/sql/db_update_mysql_3_4.sql
@@ -0,0 +1,8 @@
+USE ##;
+-- !
+SET FOREIGN_KEY_CHECKS = 0;
+-- !
+!! db_update_sqlite_3_4.sql
+-- !
+SET FOREIGN_KEY_CHECKS = 1;
+-- !
\ No newline at end of file
diff --git a/resources/sql/db_update_sqlite_3_4.sql b/resources/sql/db_update_sqlite_3_4.sql
new file mode 100644
index 000000000..c06a9035c
--- /dev/null
+++ b/resources/sql/db_update_sqlite_3_4.sql
@@ -0,0 +1,29 @@
+ALTER TABLE Feeds RENAME TO backup_Feeds;
+-- !
+CREATE TABLE Feeds (
+ id $$,
+ ordr INTEGER NOT NULL CHECK (ordr >= 0),
+ title TEXT NOT NULL CHECK (title != ''),
+ description TEXT,
+ date_created BIGINT,
+ icon ^^,
+ category INTEGER NOT NULL CHECK (category >= -1), /* Physical category ID, also root feeds contain -1 here. */
+ source TEXT,
+ update_type INTEGER NOT NULL CHECK (update_type >= 0),
+ update_interval INTEGER NOT NULL DEFAULT 900 CHECK (update_interval >= 1),
+ is_off INTEGER NOT NULL DEFAULT 0 CHECK (is_off >= 0 AND is_off <= 1),
+ is_quiet INTEGER NOT NULL DEFAULT 0 CHECK (is_quiet >= 0 AND is_quiet <= 1),
+ open_articles INTEGER NOT NULL DEFAULT 0 CHECK (open_articles >= 0 AND open_articles <= 1),
+ account_id INTEGER NOT NULL,
+ custom_id TEXT NOT NULL CHECK (custom_id != ''), /* Custom ID cannot be empty, it must contain either service-specific ID, or Feeds/id. */
+ /* Custom column for (serialized) custom account-specific data. */
+ custom_data TEXT,
+
+ FOREIGN KEY (account_id) REFERENCES Accounts (id) ON DELETE CASCADE
+);
+-- !
+INSERT INTO Feeds (id, ordr, title, description, date_created, icon, category, source, update_type, update_interval, is_off, open_articles, account_id, custom_id, custom_data)
+SELECT id, ordr, title, description, date_created, icon, category, source, update_type, update_interval, is_off, open_articles, account_id, custom_id, custom_data
+FROM backup_Feeds;
+-- !
+DROP TABLE backup_Feeds;
\ No newline at end of file
diff --git a/src/librssguard/database/databasequeries.cpp b/src/librssguard/database/databasequeries.cpp
index 402c82916..5de60aa49 100644
--- a/src/librssguard/database/databasequeries.cpp
+++ b/src/librssguard/database/databasequeries.cpp
@@ -2072,7 +2072,8 @@ void DatabaseQueries::createOverwriteFeed(const QSqlDatabase& db, Feed* feed, in
q.prepare("UPDATE Feeds "
"SET title = :title, ordr = :ordr, description = :description, date_created = :date_created, "
" icon = :icon, category = :category, source = :source, update_type = :update_type, "
- " update_interval = :update_interval, is_off = :is_off, open_articles = :open_articles, "
+ " update_interval = :update_interval, is_off = :is_off, is_quiet = :is_quiet, open_articles = "
+ ":open_articles, "
" account_id = :account_id, custom_id = :custom_id, custom_data = :custom_data "
"WHERE id = :id;");
q.bindValue(QSL(":title"), feed->title());
@@ -2088,6 +2089,7 @@ void DatabaseQueries::createOverwriteFeed(const QSqlDatabase& db, Feed* feed, in
q.bindValue(QSL(":id"), feed->id());
q.bindValue(QSL(":ordr"), feed->sortOrder());
q.bindValue(QSL(":is_off"), feed->isSwitchedOff());
+ q.bindValue(QSL(":is_quiet"), feed->isQuiet());
q.bindValue(QSL(":open_articles"), feed->openArticlesDirectly());
auto custom_data = feed->customDatabaseData();
diff --git a/src/librssguard/database/databasequeries.h b/src/librssguard/database/databasequeries.h
index 014aba460..37913768d 100644
--- a/src/librssguard/database/databasequeries.h
+++ b/src/librssguard/database/databasequeries.h
@@ -34,7 +34,9 @@ class DatabaseQueries {
static bool assignLabelToMessage(const QSqlDatabase& db, Label* label, const Message& msg);
static bool setLabelsForMessage(const QSqlDatabase& db, const QList