54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
"""
|
|
Add unique constraint to service and post fields
|
|
"""
|
|
|
|
from yoyo import step
|
|
|
|
__depends__ = {"initial"}
|
|
|
|
steps = [
|
|
step(
|
|
"""
|
|
CREATE TABLE posts (
|
|
"id" varchar(255) NOT NULL,
|
|
"user" varchar(255) NOT NULL,
|
|
"service" varchar(20) NOT NULL,
|
|
"title" text NOT NULL DEFAULT '',
|
|
"content" text NOT NULL DEFAULT '',
|
|
"embed" jsonb NOT NULL DEFAULT '{}',
|
|
"shared_file" boolean NOT NULL DEFAULT '0',
|
|
"added" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"published" timestamp,
|
|
"edited" timestamp,
|
|
"file" jsonb NOT NULL,
|
|
"attachments" jsonb[] NOT NULL,
|
|
PRIMARY KEY (id, service)
|
|
);
|
|
""",
|
|
"DROP TABLE posts",
|
|
),
|
|
step(
|
|
"INSERT INTO posts SELECT * FROM booru_posts ON CONFLICT DO NOTHING",
|
|
"INSERT INTO booru_posts SELECT * FROM posts",
|
|
),
|
|
step(
|
|
"DROP TABLE booru_posts",
|
|
"""
|
|
CREATE TABLE booru_posts (
|
|
"id" varchar(255) NOT NULL,
|
|
"user" varchar(255) NOT NULL,
|
|
"service" varchar(20) NOT NULL,
|
|
"title" text NOT NULL DEFAULT '',
|
|
"content" text NOT NULL DEFAULT '',
|
|
"embed" jsonb NOT NULL DEFAULT '{}',
|
|
"shared_file" boolean NOT NULL DEFAULT '0',
|
|
"added" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"published" timestamp,
|
|
"edited" timestamp,
|
|
"file" jsonb NOT NULL,
|
|
"attachments" jsonb[] NOT NULL
|
|
);
|
|
""",
|
|
),
|
|
]
|