mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-16 01:44:03 +03:00
107 lines
2.0 KiB
YAML
107 lines
2.0 KiB
YAML
type: bulk
|
|
args:
|
|
|
|
#Author table
|
|
- type: run_sql
|
|
args:
|
|
sql: |
|
|
create table author(
|
|
id serial primary key,
|
|
name text unique,
|
|
is_registered boolean
|
|
);
|
|
- type: track_table
|
|
args:
|
|
schema: public
|
|
name: author
|
|
|
|
#Article table
|
|
- type: run_sql
|
|
args:
|
|
sql: |
|
|
CREATE TABLE article (
|
|
id SERIAL PRIMARY KEY,
|
|
title TEXT,
|
|
content TEXT,
|
|
author_id INTEGER REFERENCES author(id),
|
|
is_published BOOLEAN,
|
|
published_on TIMESTAMP
|
|
)
|
|
- type: track_table
|
|
args:
|
|
schema: public
|
|
name: article
|
|
#Object relationship
|
|
- type: create_object_relationship
|
|
args:
|
|
table: article
|
|
name: author
|
|
using:
|
|
foreign_key_constraint_on: author_id
|
|
|
|
#Insert values
|
|
- type: run_sql
|
|
args:
|
|
sql: |
|
|
insert into author (name, is_registered)
|
|
values
|
|
('Author 1', false),
|
|
('Author 2', true),
|
|
('Author 3', true),
|
|
('Author 4', false)
|
|
|
|
- type: run_sql
|
|
args:
|
|
sql: |
|
|
insert into article (title, content, author_id, is_published)
|
|
values
|
|
(
|
|
'Article 1',
|
|
'Sample article content 1',
|
|
1,
|
|
false
|
|
),
|
|
(
|
|
'Article 2',
|
|
'Sample article content 2',
|
|
1,
|
|
true
|
|
),
|
|
(
|
|
'Article 3',
|
|
'Sample article content 3',
|
|
2,
|
|
false
|
|
),
|
|
(
|
|
'Article 4',
|
|
'Sample article content 4',
|
|
3,
|
|
false
|
|
),
|
|
(
|
|
'Article 5',
|
|
'Sample article content 5',
|
|
3,
|
|
false
|
|
),
|
|
(
|
|
'Article 6',
|
|
'Sample article content 6',
|
|
3,
|
|
true
|
|
)
|
|
|
|
# Search article functions
|
|
- type: run_sql
|
|
args:
|
|
sql: |
|
|
CREATE FUNCTION search_articles(search text)
|
|
RETURNS SETOF article AS $$
|
|
SELECT *
|
|
FROM article
|
|
WHERE
|
|
title ilike ('%' || search || '%')
|
|
OR content ilike ('%' || search || '%')
|
|
$$ LANGUAGE sql STABLE;
|