46 lines
1.6 KiB
SQL
46 lines
1.6 KiB
SQL
-- Create new table where we will store profile social links,
|
|
-- after discussion https://github.com/status-im/status-go/pull/3552#issuecomment-1573817044
|
|
-- we decided to replace the entire db table content on every change (because of that position column is not needed)
|
|
CREATE TABLE IF NOT EXISTS profile_social_links (
|
|
text VARCHAR NOT NULL CHECK (length(trim(text)) > 0),
|
|
url VARCHAR NOT NULL CHECK (length(trim(url)) > 0),
|
|
position INT DEFAULT 0,
|
|
PRIMARY KEY (text, url)
|
|
);
|
|
|
|
-- Create new column to keep clock of the last change of profile social links (since content is replaced all row share the same clock value)
|
|
ALTER TABLE settings_sync_clock ADD COLUMN social_links INTEGER NOT NULL DEFAULT 0;
|
|
|
|
-- Create temp table to generate a position for rows
|
|
CREATE TEMPORARY TABLE temp_social_links_settings (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
text VARCHAR NOT NULL,
|
|
url VARCHAR NOT NULL
|
|
);
|
|
|
|
-- Copy to temp table
|
|
INSERT INTO temp_social_links_settings (text, url)
|
|
SELECT link_text, link_url
|
|
FROM social_links_settings
|
|
WHERE link_url != "";
|
|
|
|
-- Insert into `profile_social_links` table
|
|
INSERT INTO profile_social_links
|
|
SELECT text, url, id
|
|
FROM temp_social_links_settings;
|
|
|
|
-- From some reason the following sql doesn't work through status-go migrations, although the query is correct.
|
|
-- -- Set the clock for profile social links
|
|
-- UPDATE settings_sync_clock
|
|
-- SET
|
|
-- social_links = (SELECT clock
|
|
-- FROM social_links_settings
|
|
-- WHERE link_url != ""
|
|
-- LIMIT 1)
|
|
-- WHERE synthetic_id = "id";
|
|
|
|
-- Drop temp table
|
|
DROP TABLE temp_social_links_settings;
|
|
|
|
-- Drop old table
|
|
DROP TABLE social_links_settings; |