sqlite: added create images_fts5 table
This commit is contained in:
parent
f98e5dc063
commit
7d10ad48b9
1
Makefile
1
Makefile
|
@ -4,6 +4,7 @@ export PATH := $(shell pwd)/bin:$(shell pwd)/web/node_modules/.bin:$(PATH)
|
||||||
export GOOSE_DRIVER ?= sqlite3
|
export GOOSE_DRIVER ?= sqlite3
|
||||||
export GOOSE_DBSTRING ?= ./go/data.db
|
export GOOSE_DBSTRING ?= ./go/data.db
|
||||||
export GOOSE_MIGRATION_DIR ?= schemas/migrations
|
export GOOSE_MIGRATION_DIR ?= schemas/migrations
|
||||||
|
export GOFLAGS=-tags=fts5
|
||||||
|
|
||||||
build: generate-go generate-web
|
build: generate-go generate-web
|
||||||
go build -o bin/bluemage ./go/cmd/bluemage/main.go
|
go build -o bin/bluemage ./go/cmd/bluemage/main.go
|
||||||
|
|
13
flake.nix
13
flake.nix
|
@ -3,10 +3,19 @@
|
||||||
nixpkgs.url = "nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "nixpkgs/nixpkgs-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ nixpkgs, ... }:
|
outputs = { nixpkgs, ... }:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
|
||||||
|
# Go-Jet binary in nixos repo is not built with fts5 sqlite enabled
|
||||||
|
overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
go-jet = prev.go-jet.overrideAttrs (oldAttrs: {
|
||||||
|
tags = oldAttrs.tags ++ [ "fts5" ];
|
||||||
|
});
|
||||||
|
})
|
||||||
|
];
|
||||||
|
pkgs = import nixpkgs { inherit system overlays; };
|
||||||
goverter = pkgs.buildGoModule rec {
|
goverter = pkgs.buildGoModule rec {
|
||||||
name = "goverter";
|
name = "goverter";
|
||||||
version = "1.5.0";
|
version = "1.5.0";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
-- +goose Up
|
-- +goose Up
|
||||||
-- +goose StatementBegin
|
-- +goose StatementBegin
|
||||||
CREATE TABLE images(
|
CREATE TABLE images(
|
||||||
id INTEGER PRIMARY KEY,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
subreddit VARCHAR(255) NOT NULL COLLATE NOCASE,
|
subreddit VARCHAR(255) NOT NULL COLLATE NOCASE,
|
||||||
device VARCHAR(250) NOT NULL COLLATE NOCASE,
|
device VARCHAR(250) NOT NULL COLLATE NOCASE,
|
||||||
post_title VARCHAR(255) NOT NULL,
|
post_title VARCHAR(255) NOT NULL,
|
||||||
|
@ -33,6 +33,17 @@ CREATE TABLE images(
|
||||||
REFERENCES subreddits(cover_image_id)
|
REFERENCES subreddits(cover_image_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE VIRTUAL TABLE images_fts5 USING fts5(
|
||||||
|
post_title,
|
||||||
|
post_name,
|
||||||
|
post_author,
|
||||||
|
image_relative_path,
|
||||||
|
image_original_url,
|
||||||
|
thumbnail_relative_path,
|
||||||
|
content='images',
|
||||||
|
content_rowid='id'
|
||||||
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_subreddit_images_blacklisted ON images(subreddit, blacklisted);
|
CREATE INDEX idx_subreddit_images_blacklisted ON images(subreddit, blacklisted);
|
||||||
CREATE INDEX idx_subreddit_device_images_blacklisted ON images(device, subreddit, blacklisted);
|
CREATE INDEX idx_subreddit_device_images_blacklisted ON images(device, subreddit, blacklisted);
|
||||||
CREATE INDEX idx_images_nsfw_blacklisted ON images(nsfw, blacklisted);
|
CREATE INDEX idx_images_nsfw_blacklisted ON images(nsfw, blacklisted);
|
||||||
|
@ -54,9 +65,22 @@ CREATE TRIGGER images_update_subreddit_cover_on_delete AFTER DELETE ON images FO
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE subreddits SET cover_image_id = NULL WHERE cover_image_id = old.id;
|
UPDATE subreddits SET cover_image_id = NULL WHERE cover_image_id = old.id;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER images_update_fts_insert AFTER INSERT ON images FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO images_fts5(rowid, post_title, post_name, post_author, image_relative_path, image_original_url, thumbnail_relative_path)
|
||||||
|
VALUES (new.id, new.post_title, new.post_name, new.post_author, new.image_relative_path, new.image_original_url, new.thumbnail_relative_path);
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER images_update_fts_delete AFTER DELETE ON images FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
DELETE FROM images_fts5 WHERE rowid = old.id;
|
||||||
|
END;
|
||||||
|
|
||||||
-- +goose StatementEnd
|
-- +goose StatementEnd
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
-- +goose StatementBegin
|
-- +goose StatementBegin
|
||||||
|
DROP TABLE images_fts5;
|
||||||
DROP TABLE images;
|
DROP TABLE images;
|
||||||
-- +goose StatementEnd
|
-- +goose StatementEnd
|
||||||
|
|
Loading…
Reference in a new issue