fix(sqlite): id column should be unique (#894)

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
This commit is contained in:
Monirzadeh 2024-05-12 18:30:03 +03:30 committed by Felipe M.
parent c107e974ca
commit eaa6f0ea2a
No known key found for this signature in database
GPG key ID: CCFBC5637D4000A8
2 changed files with 23 additions and 0 deletions

View file

@ -0,0 +1,22 @@
-- Create a temporary table
CREATE TABLE IF NOT EXISTS bookmark_temp(
id INTEGER PRIMARY KEY AUTOINCREMENT,
url TEXT NOT NULL,
title TEXT NOT NULL,
excerpt TEXT NOT NULL DEFAULT "",
author TEXT NOT NULL DEFAULT "",
public INTEGER NOT NULL DEFAULT 0,
modified TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
has_content BOOLEAN DEFAULT FALSE NOT NULL,
CONSTRAINT bookmark_url_UNIQUE UNIQUE(url)
);
-- Copy data from the original table to the temporary table
INSERT INTO bookmark_temp (id, url, title, excerpt, author, public, modified, has_content)
SELECT id, url, title, excerpt, author, public, modified, has_content FROM bookmark;
-- Drop the original table
DROP TABLE bookmark;
-- Rename the temporary table to the original table name
ALTER TABLE bookmark_temp RENAME TO bookmark;

View file

@ -59,6 +59,7 @@ var sqliteMigrations = []migration{
return nil return nil
}), }),
newFileMigration("0.3.0", "0.4.0", "sqlite/0002_denormalize_content"), newFileMigration("0.3.0", "0.4.0", "sqlite/0002_denormalize_content"),
newFileMigration("0.4.0", "0.5.0", "sqlite/0003_uniq_id"),
} }
// SQLiteDatabase is implementation of Database interface // SQLiteDatabase is implementation of Database interface