diff options
| author | 2019-10-06 00:14:19 +0200 | |
|---|---|---|
| committer | 2019-10-06 00:14:19 +0200 | |
| commit | be4c942cb3bd2b41dc2e01eb437dfd4f2f73ab4a (patch) | |
| tree | 164475741f79c2057db1c956dcf77e720835654a /app/SQL | |
| parent | 1b15e22897c9190a75be33698764d625a7813cb2 (diff) | |
SQL allow recreating existing user (#2555)
* SQL allow recreating existing user
Taking advantage of https://github.com/FreshRSS/FreshRSS/pull/2554
In a case when FreshRSS data is lost, but database data still intact (in
particular MySQL or PostgreSQL), this patch allows recreating previous
users without error
* Better error retrieval
Especially when error occur during the prepare statement
Diffstat (limited to 'app/SQL')
| -rw-r--r-- | app/SQL/install.sql.mysql.php | 11 | ||||
| -rw-r--r-- | app/SQL/install.sql.pgsql.php | 8 | ||||
| -rw-r--r-- | app/SQL/install.sql.sqlite.php | 10 |
3 files changed, 17 insertions, 12 deletions
diff --git a/app/SQL/install.sql.mysql.php b/app/SQL/install.sql.mysql.php index a5db1b216..87b5d1989 100644 --- a/app/SQL/install.sql.mysql.php +++ b/app/SQL/install.sql.mysql.php @@ -57,14 +57,18 @@ CREATE TABLE IF NOT EXISTS `_entry` ( UNIQUE KEY (`id_feed`,`guid`), -- v0.7 INDEX (`is_favorite`), -- v0.7 INDEX (`is_read`), -- v0.7 - INDEX `entry_lastSeen_index` (`lastSeen`) -- v1.1.1 - -- INDEX `entry_feed_read_index` (`id_feed`,`is_read`) -- v1.7 Located futher down + INDEX `entry_lastSeen_index` (`lastSeen`), -- v1.1.1 + INDEX `entry_feed_read_index` (`id_feed`,`is_read`) -- v1.7 ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = INNODB; INSERT IGNORE INTO `_category` (id, name) VALUES(1, "Uncategorized"); SQL; +const SQL_CREATE_INDEX_ENTRY_1 = <<<'SQL' +CREATE INDEX `entry_feed_read_index` ON `_entry` (`id_feed`,`is_read`); -- v1.7 +SQL; + const SQL_CREATE_TABLE_ENTRYTMP = <<<'SQL' CREATE TABLE IF NOT EXISTS `_entrytmp` ( -- v1.7 `id` BIGINT NOT NULL, @@ -86,9 +90,6 @@ CREATE TABLE IF NOT EXISTS `_entrytmp` ( -- v1.7 INDEX (`date`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = INNODB; - --- v1.7 Located here to be auto-added -CREATE INDEX `entry_feed_read_index` ON `_entry`(`id_feed`,`is_read`); SQL; const SQL_CREATE_TABLE_TAGS = <<<'SQL' diff --git a/app/SQL/install.sql.pgsql.php b/app/SQL/install.sql.pgsql.php index b37ff9f90..d77fe917b 100644 --- a/app/SQL/install.sql.pgsql.php +++ b/app/SQL/install.sql.pgsql.php @@ -52,6 +52,7 @@ CREATE TABLE IF NOT EXISTS `_entry` ( CREATE INDEX IF NOT EXISTS `_is_favorite_index` ON `_entry` ("is_favorite"); CREATE INDEX IF NOT EXISTS `_is_read_index` ON `_entry` ("is_read"); CREATE INDEX IF NOT EXISTS `_entry_lastSeen_index` ON `_entry` ("lastSeen"); +CREATE INDEX IF NOT EXISTS `_entry_feed_read_index` ON `_entry` ("id_feed","is_read"); -- v1.7 INSERT INTO `_category` (id, name) SELECT 1, 'Uncategorized' @@ -59,6 +60,10 @@ INSERT INTO `_category` (id, name) RETURNING nextval('`_category_id_seq`'); SQL; +const SQL_CREATE_INDEX_ENTRY_1 = <<<'SQL' +CREATE INDEX IF NOT EXISTS `_entry_feed_read_index` ON `_entry` ("id_feed","is_read"); -- v1.7 +SQL; + const SQL_CREATE_TABLE_ENTRYTMP = <<<'SQL' CREATE TABLE IF NOT EXISTS `_entrytmp` ( -- v1.7 "id" BIGINT NOT NULL PRIMARY KEY, @@ -78,9 +83,6 @@ CREATE TABLE IF NOT EXISTS `_entrytmp` ( -- v1.7 UNIQUE ("id_feed","guid") ); CREATE INDEX IF NOT EXISTS `_entrytmp_date_index` ON `_entrytmp` ("date"); - --- v1.7 -CREATE INDEX IF NOT EXISTS `_entry_feed_read_index` ON `_entry` ("id_feed","is_read"); SQL; const SQL_CREATE_TABLE_TAGS = <<<'SQL' diff --git a/app/SQL/install.sql.sqlite.php b/app/SQL/install.sql.sqlite.php index 81370ce56..d3a5e0697 100644 --- a/app/SQL/install.sql.sqlite.php +++ b/app/SQL/install.sql.sqlite.php @@ -55,10 +55,15 @@ CREATE TABLE IF NOT EXISTS `entry` ( CREATE INDEX IF NOT EXISTS entry_is_favorite_index ON `entry`(`is_favorite`); CREATE INDEX IF NOT EXISTS entry_is_read_index ON `entry`(`is_read`); CREATE INDEX IF NOT EXISTS entry_lastSeen_index ON `entry`(`lastSeen`); -- //v1.1.1 +CREATE INDEX IF NOT EXISTS entry_feed_read_index ON `entry`(`id_feed`,`is_read`); -- v1.7 INSERT OR IGNORE INTO `category` (id, name) VALUES(1, "Uncategorized"); SQL; +const SQL_CREATE_INDEX_ENTRY_1 = <<<'SQL' +CREATE INDEX IF NOT EXISTS entry_feed_read_index ON `entry`(`id_feed`,`is_read`); -- v1.7 +SQL; + const SQL_CREATE_TABLE_ENTRYTMP = <<<'SQL' CREATE TABLE IF NOT EXISTS `entrytmp` ( -- v1.7 `id` BIGINT NOT NULL, @@ -79,9 +84,6 @@ CREATE TABLE IF NOT EXISTS `entrytmp` ( -- v1.7 UNIQUE (`id_feed`,`guid`) ); CREATE INDEX IF NOT EXISTS entrytmp_date_index ON `entrytmp`(`date`); - --- v1.7 -CREATE INDEX IF NOT EXISTS `entry_feed_read_index` ON `entry`(`id_feed`,`is_read`); SQL; const SQL_CREATE_TABLE_TAGS = <<<'SQL' @@ -98,7 +100,7 @@ CREATE TABLE IF NOT EXISTS `entrytag` ( FOREIGN KEY (`id_tag`) REFERENCES `tag` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (`id_entry`) REFERENCES `entry` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ); -CREATE INDEX entrytag_id_entry_index ON `entrytag` (`id_entry`); +CREATE INDEX IF NOT EXISTS entrytag_id_entry_index ON `entrytag` (`id_entry`); SQL; const SQL_INSERT_FEED = <<<'SQL' |
