|
|
@@ -12,8 +12,8 @@ import (
|
|
|
var schemaVersion = len(migrations)
|
|
|
|
|
|
// Order is important. Add new migrations at the end of the list.
|
|
|
-var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+var migrations = []func(tx *sql.Tx) error{
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
CREATE TABLE schema_version (
|
|
|
version text not null
|
|
|
@@ -122,19 +122,16 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, driver string) (err error) {
|
|
|
- if driver == "postgresql" {
|
|
|
- sql := `
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
+ sql := `
|
|
|
CREATE EXTENSION IF NOT EXISTS hstore;
|
|
|
ALTER TABLE users ADD COLUMN extra hstore;
|
|
|
CREATE INDEX users_extra_idx ON users using gin(extra);
|
|
|
`
|
|
|
- _, err = tx.Exec(sql)
|
|
|
- return err
|
|
|
- }
|
|
|
- return nil
|
|
|
+ _, err = tx.Exec(sql)
|
|
|
+ return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
CREATE TABLE tokens (
|
|
|
id text not null,
|
|
|
@@ -146,7 +143,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
CREATE TYPE entry_sorting_direction AS enum('asc', 'desc');
|
|
|
ALTER TABLE users ADD COLUMN entry_direction entry_sorting_direction default 'asc';
|
|
|
@@ -154,7 +151,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
CREATE TABLE integrations (
|
|
|
user_id int not null,
|
|
|
@@ -175,27 +172,27 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE feeds ADD COLUMN scraper_rules text default ''`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE feeds ADD COLUMN rewrite_rules text default ''`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE feeds ADD COLUMN crawler boolean default 'f'`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE sessions rename to user_sessions`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
DROP TABLE tokens;
|
|
|
|
|
|
@@ -209,7 +206,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN wallabag_enabled bool default 'f',
|
|
|
@@ -222,12 +219,12 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE entries ADD COLUMN starred bool default 'f'`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
CREATE INDEX entries_user_status_idx ON entries(user_id, status);
|
|
|
CREATE INDEX feeds_user_category_idx ON feeds(user_id, category_id);
|
|
|
@@ -235,7 +232,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN nunux_keeper_enabled bool default 'f',
|
|
|
@@ -245,17 +242,17 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE enclosures ALTER COLUMN size SET DATA TYPE bigint`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE entries ADD COLUMN comments_url text default ''`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN pocket_enabled bool default 'f',
|
|
|
@@ -265,14 +262,14 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE user_sessions ALTER COLUMN ip SET DATA TYPE inet using ip::inet;
|
|
|
`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE feeds
|
|
|
ADD COLUMN username text default '',
|
|
|
@@ -281,7 +278,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE entries ADD COLUMN document_vectors tsvector;
|
|
|
UPDATE entries SET document_vectors = to_tsvector(substring(title || ' ' || coalesce(content, '') for 1000000));
|
|
|
@@ -290,12 +287,12 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE feeds ADD COLUMN user_agent text default ''`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
UPDATE
|
|
|
entries
|
|
|
@@ -305,17 +302,17 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE users ADD COLUMN keyboard_shortcuts boolean default 't'`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE feeds ADD COLUMN disabled boolean default 'f';`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE users ALTER COLUMN theme SET DEFAULT 'light_serif';
|
|
|
UPDATE users SET theme='light_serif' WHERE theme='default';
|
|
|
@@ -325,7 +322,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE entries ADD COLUMN changed_at timestamp with time zone;
|
|
|
UPDATE entries SET changed_at = published_at;
|
|
|
@@ -334,7 +331,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
CREATE TABLE api_keys (
|
|
|
id serial not null,
|
|
|
@@ -350,7 +347,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE entries ADD COLUMN share_code text not null default '';
|
|
|
CREATE UNIQUE INDEX entries_share_code_idx ON entries USING btree(share_code) WHERE share_code <> '';
|
|
|
@@ -358,12 +355,12 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `CREATE INDEX enclosures_user_entry_url_idx ON enclosures(user_id, entry_id, md5(url))`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE feeds ADD COLUMN next_check_at timestamp with time zone default now();
|
|
|
CREATE INDEX entries_user_feed_idx ON entries (user_id, feed_id);
|
|
|
@@ -371,52 +368,52 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE feeds ADD COLUMN ignore_http_cache bool default false`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE users ADD COLUMN entries_per_page int default 100`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE users ADD COLUMN show_reading_time boolean default 't'`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `CREATE INDEX entries_id_user_status_idx ON entries USING btree (id, user_id, status)`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE feeds ADD COLUMN fetch_via_proxy bool default false`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `CREATE INDEX entries_feed_id_status_hash_idx ON entries USING btree (feed_id, status, hash)`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `CREATE INDEX entries_user_id_status_starred_idx ON entries (user_id, status, starred)`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE users ADD COLUMN entry_swipe boolean default 't'`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE integrations DROP COLUMN fever_password`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE feeds
|
|
|
ADD COLUMN blocklist_rules text not null default '',
|
|
|
@@ -425,12 +422,12 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE entries ADD COLUMN reading_time int not null default 0`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE entries ADD COLUMN created_at timestamp with time zone not null default now();
|
|
|
UPDATE entries SET created_at = published_at;
|
|
|
@@ -438,7 +435,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, driver string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE users
|
|
|
ADD column stylesheet text not null default '',
|
|
|
@@ -449,8 +446,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- if driver == "postgresql" {
|
|
|
- _, err = tx.Exec(`
|
|
|
+ _, err = tx.Exec(`
|
|
|
DECLARE my_cursor CURSOR FOR
|
|
|
SELECT
|
|
|
id,
|
|
|
@@ -460,28 +456,28 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
FROM users
|
|
|
FOR UPDATE
|
|
|
`)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- defer tx.Exec("CLOSE my_cursor")
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ defer tx.Exec("CLOSE my_cursor")
|
|
|
|
|
|
- for {
|
|
|
- var (
|
|
|
- userID int64
|
|
|
- customStylesheet string
|
|
|
- googleID string
|
|
|
- oidcID string
|
|
|
- )
|
|
|
+ for {
|
|
|
+ var (
|
|
|
+ userID int64
|
|
|
+ customStylesheet string
|
|
|
+ googleID string
|
|
|
+ oidcID string
|
|
|
+ )
|
|
|
|
|
|
- if err := tx.QueryRow(`FETCH NEXT FROM my_cursor`).Scan(&userID, &customStylesheet, &googleID, &oidcID); err != nil {
|
|
|
- if err == sql.ErrNoRows {
|
|
|
- break
|
|
|
- }
|
|
|
- return err
|
|
|
+ if err := tx.QueryRow(`FETCH NEXT FROM my_cursor`).Scan(&userID, &customStylesheet, &googleID, &oidcID); err != nil {
|
|
|
+ if err == sql.ErrNoRows {
|
|
|
+ break
|
|
|
}
|
|
|
+ return err
|
|
|
+ }
|
|
|
|
|
|
- _, err := tx.Exec(
|
|
|
- `UPDATE
|
|
|
+ _, err := tx.Exec(
|
|
|
+ `UPDATE
|
|
|
users
|
|
|
SET
|
|
|
stylesheet=$2,
|
|
|
@@ -490,20 +486,17 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
WHERE
|
|
|
id=$1
|
|
|
`,
|
|
|
- userID, customStylesheet, googleID, oidcID)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
+ userID, customStylesheet, googleID, oidcID)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, driver string) (err error) {
|
|
|
- if driver == "postgresql" {
|
|
|
- if _, err = tx.Exec(`ALTER TABLE users DROP COLUMN extra;`); err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
+ if _, err = tx.Exec(`ALTER TABLE users DROP COLUMN extra;`); err != nil {
|
|
|
+ return err
|
|
|
}
|
|
|
_, err = tx.Exec(`
|
|
|
CREATE UNIQUE INDEX users_google_id_idx ON users(google_id) WHERE google_id <> '';
|
|
|
@@ -511,7 +504,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
CREATE INDEX entries_feed_url_idx ON entries(feed_id, url) WHERE length(url) < 2000;
|
|
|
CREATE INDEX entries_user_status_feed_idx ON entries(user_id, status, feed_id);
|
|
|
@@ -519,7 +512,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
CREATE TABLE acme_cache (
|
|
|
key varchar(400) not null primary key,
|
|
|
@@ -529,13 +522,13 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE feeds ADD COLUMN allow_self_signed_certificates boolean not null default false
|
|
|
`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
CREATE TYPE webapp_display_mode AS enum('fullscreen', 'standalone', 'minimal-ui', 'browser');
|
|
|
ALTER TABLE users ADD COLUMN display_mode webapp_display_mode default 'standalone';
|
|
|
@@ -543,24 +536,24 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE feeds ADD COLUMN cookie text default ''`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE categories ADD COLUMN hide_globally boolean not null default false
|
|
|
`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE feeds ADD COLUMN hide_globally boolean not null default false
|
|
|
`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN telegram_bot_enabled bool default 'f',
|
|
|
@@ -570,7 +563,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
CREATE TYPE entry_sorting_order AS enum('published_at', 'created_at');
|
|
|
ALTER TABLE users ADD COLUMN entry_order entry_sorting_order default 'published_at';
|
|
|
@@ -578,7 +571,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN googlereader_enabled bool default 'f',
|
|
|
@@ -588,7 +581,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN espial_enabled bool default 'f',
|
|
|
@@ -599,7 +592,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN linkding_enabled bool default 'f',
|
|
|
@@ -609,13 +602,13 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE feeds ADD COLUMN url_rewrite_rules text not null default ''
|
|
|
`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE users
|
|
|
ADD COLUMN default_reading_speed int default 265,
|
|
|
@@ -623,25 +616,25 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
`)
|
|
|
return
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE users ADD COLUMN default_home_page text default 'unread';
|
|
|
`)
|
|
|
return
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE integrations ADD COLUMN wallabag_only_url bool default 'f';
|
|
|
`)
|
|
|
return
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE users ADD COLUMN categories_sorting_order text not null default 'unread_count';
|
|
|
`)
|
|
|
return
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN matrix_bot_enabled bool default 'f',
|
|
|
@@ -653,18 +646,18 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE users ADD COLUMN double_tap boolean default 't'`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE entries ADD COLUMN tags text[] default '{}';
|
|
|
`)
|
|
|
return
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE users RENAME double_tap TO gesture_nav;
|
|
|
ALTER TABLE users
|
|
|
@@ -674,14 +667,14 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations ADD COLUMN linkding_tags text default '';
|
|
|
`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE feeds ADD COLUMN no_media_player boolean default 'f';
|
|
|
ALTER TABLE enclosures ADD COLUMN media_progression int default 0;
|
|
|
@@ -689,14 +682,14 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations ADD COLUMN linkding_mark_as_unread bool default 'f';
|
|
|
`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
// Delete duplicated rows
|
|
|
sql := `
|
|
|
DELETE FROM enclosures a USING enclosures b
|
|
|
@@ -724,12 +717,12 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
|
|
|
return nil
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE users ADD COLUMN mark_read_on_view boolean default 't'`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN notion_enabled bool default 'f',
|
|
|
@@ -739,7 +732,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN readwise_enabled bool default 'f',
|
|
|
@@ -748,7 +741,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN apprise_enabled bool default 'f',
|
|
|
@@ -758,7 +751,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN shiori_enabled bool default 'f',
|
|
|
@@ -769,7 +762,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN shaarli_enabled bool default 'f',
|
|
|
@@ -779,13 +772,13 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
ALTER TABLE feeds ADD COLUMN apprise_service_urls text default '';
|
|
|
`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN webhook_enabled bool default 'f',
|
|
|
@@ -795,7 +788,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN telegram_bot_topic_id int,
|
|
|
@@ -805,14 +798,14 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations ADD COLUMN telegram_bot_disable_buttons bool default 'f';
|
|
|
`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
-- Speed up has_enclosure
|
|
|
CREATE INDEX enclosures_entry_id_idx ON enclosures(entry_id);
|
|
|
@@ -828,7 +821,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN rssbridge_enabled bool default 'f',
|
|
|
@@ -837,7 +830,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
CREATE TABLE webauthn_credentials (
|
|
|
handle bytea primary key,
|
|
|
@@ -855,7 +848,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
`)
|
|
|
return
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN omnivore_enabled bool default 'f',
|
|
|
@@ -865,7 +858,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN linkace_enabled bool default 'f',
|
|
|
@@ -878,7 +871,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN linkwarden_enabled bool default 'f',
|
|
|
@@ -888,7 +881,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN readeck_enabled bool default 'f',
|
|
|
@@ -900,29 +893,29 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE feeds ADD COLUMN disable_http2 bool default 'f'`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE users ADD COLUMN media_playback_rate numeric default 1;`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
// the WHERE part speed-up the request a lot
|
|
|
sql := `UPDATE entries SET tags = array_remove(tags, '') WHERE '' = ANY(tags);`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
// Entry URLs can exceeds btree maximum size
|
|
|
// Checking entry existence is now using entries_feed_id_status_hash_idx index
|
|
|
_, err = tx.Exec(`DROP INDEX entries_feed_url_idx`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN raindrop_enabled bool default 'f',
|
|
|
@@ -933,12 +926,12 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE feeds ADD COLUMN description text default ''`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE users
|
|
|
ADD COLUMN block_filter_entry_rules text not null default '',
|
|
|
@@ -947,7 +940,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN betula_url text default '',
|
|
|
@@ -957,7 +950,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN ntfy_enabled bool default 'f',
|
|
|
@@ -975,22 +968,22 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE users ADD COLUMN mark_read_on_media_player_completion bool default 'f';`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE users ADD COLUMN custom_js text not null default '';`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE users ADD COLUMN external_font_hosts text not null default '';`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN cubox_enabled bool default 'f',
|
|
|
@@ -999,7 +992,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN discord_enabled bool default 'f',
|
|
|
@@ -1008,12 +1001,12 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `ALTER TABLE integrations ADD COLUMN ntfy_internal_links bool default 'f';`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN slack_enabled bool default 'f',
|
|
|
@@ -1022,11 +1015,11 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`ALTER TABLE feeds ADD COLUMN webhook_url text default '';`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN pushover_enabled bool default 'f',
|
|
|
@@ -1042,14 +1035,14 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE feeds ADD COLUMN ntfy_topic text default '';
|
|
|
`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE icons ADD COLUMN external_id text default '';
|
|
|
CREATE UNIQUE INDEX icons_external_id_idx ON icons USING btree(external_id) WHERE external_id <> '';
|
|
|
@@ -1058,7 +1051,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`
|
|
|
DECLARE id_cursor CURSOR FOR
|
|
|
SELECT
|
|
|
@@ -1094,22 +1087,22 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
|
|
|
return nil
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`ALTER TABLE feeds ADD COLUMN proxy_url text default ''`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations ADD COLUMN rssbridge_token text default '';
|
|
|
`
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`ALTER TABLE users ADD COLUMN always_open_external_links bool default 'f'`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
ADD COLUMN karakeep_enabled bool default 'f',
|
|
|
@@ -1119,11 +1112,11 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
_, err = tx.Exec(`ALTER TABLE users ADD COLUMN open_external_links_in_new_tab bool default 't'`)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE integrations
|
|
|
DROP COLUMN pocket_enabled,
|
|
|
@@ -1133,7 +1126,7 @@ var migrations = []func(tx *sql.Tx, driver string) error{
|
|
|
_, err = tx.Exec(sql)
|
|
|
return err
|
|
|
},
|
|
|
- func(tx *sql.Tx, _ string) (err error) {
|
|
|
+ func(tx *sql.Tx) (err error) {
|
|
|
sql := `
|
|
|
ALTER TABLE feeds
|
|
|
ADD COLUMN block_filter_entry_rules text not null default '',
|