mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-18 13:02:11 +03:00
c9e7e10eaa
GitOrigin-RevId: d3080dfa00c96afcf1254d83757a5e50a0726381
287 lines
5.3 KiB
YAML
287 lines
5.3 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 not null default false
|
|
);
|
|
|
|
INSERT INTO author(name, is_registered)
|
|
VALUES
|
|
('Author 1', true),
|
|
('Author 2', true),
|
|
('Author 3', false);
|
|
|
|
CREATE TABLE article (
|
|
id SERIAL PRIMARY KEY,
|
|
title TEXT,
|
|
content TEXT,
|
|
author_id INTEGER REFERENCES author(id),
|
|
is_published BOOLEAN,
|
|
published_on TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE city (
|
|
id SERIAL PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
country TEXT NOT NULL
|
|
);
|
|
|
|
INSERT INTO city (name, country)
|
|
VALUES
|
|
('Durham', 'USA'),
|
|
('New York', 'USA'),
|
|
('Framlingham', 'UK'),
|
|
('New Orleans', 'USA');
|
|
|
|
SET TIME ZONE 'UTC';
|
|
|
|
CREATE TABLE orders (
|
|
id SERIAL PRIMARY KEY,
|
|
received_at TIMESTAMP NOT NULL,
|
|
delivered_at TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE message (
|
|
id int PRIMARY KEY,
|
|
content TEXT NOT NULL,
|
|
parent_id INT NULL
|
|
);
|
|
|
|
INSERT INTO message (id, content, parent_id)
|
|
VALUES
|
|
(
|
|
1,
|
|
'hello world',
|
|
default
|
|
),
|
|
(
|
|
2,
|
|
'content 2',
|
|
1
|
|
),
|
|
(
|
|
3,
|
|
'content 3',
|
|
1
|
|
),
|
|
(
|
|
4,
|
|
'ahoy',
|
|
default
|
|
),
|
|
(
|
|
5,
|
|
'content 5',
|
|
4
|
|
),
|
|
(
|
|
6,
|
|
'hello three',
|
|
4
|
|
);
|
|
|
|
alter table message
|
|
add constraint parent_fk foreign key (parent_id)
|
|
references message(id);
|
|
|
|
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,
|
|
true
|
|
);
|
|
|
|
CREATE TABLE "uuid_test" (
|
|
id serial primary key,
|
|
uuid_col UUID NOT NULL
|
|
);
|
|
create table "user" (
|
|
id serial primary key,
|
|
name text not null unique,
|
|
is_admin boolean default false
|
|
);
|
|
|
|
insert into "user" (name, is_admin)
|
|
values ('user_1', false), ('user_2', true)
|
|
;
|
|
|
|
create table account (
|
|
id serial primary key,
|
|
account_no integer not null unique
|
|
);
|
|
|
|
insert into account (account_no) values (1), (2) ;
|
|
CREATE TABLE table_with_sql_identifier
|
|
( id serial PRIMARY KEY
|
|
, sql_id information_schema.sql_identifier );
|
|
INSERT INTO table_with_sql_identifier (sql_id)
|
|
VALUES ('one'), ('one'), ('two'), ('three'), ('four'), ('one'), ('two');
|
|
|
|
- type: track_table
|
|
args:
|
|
schema: public
|
|
name: author
|
|
|
|
#Article table
|
|
- type: track_table
|
|
args:
|
|
schema: public
|
|
name: article
|
|
|
|
|
|
#Article table
|
|
- type: track_table
|
|
args:
|
|
schema: public
|
|
name: city
|
|
|
|
#Set timezone
|
|
- type: track_table
|
|
args:
|
|
schema: public
|
|
name: orders
|
|
|
|
#Object relationship
|
|
- type: create_object_relationship
|
|
args:
|
|
table: article
|
|
name: author
|
|
using:
|
|
foreign_key_constraint_on: author_id
|
|
|
|
#Array relationship
|
|
- type: create_array_relationship
|
|
args:
|
|
table: author
|
|
name: articles
|
|
using:
|
|
foreign_key_constraint_on:
|
|
table: article
|
|
column: author_id
|
|
|
|
|
|
#Message table
|
|
- type: track_table
|
|
args:
|
|
schema: public
|
|
name: message
|
|
|
|
# parent obj rel
|
|
- type: create_object_relationship
|
|
args:
|
|
table: message
|
|
name: parent
|
|
using:
|
|
foreign_key_constraint_on: parent_id
|
|
|
|
# children array rel
|
|
- type: create_array_relationship
|
|
args:
|
|
table: message
|
|
name: children
|
|
using:
|
|
foreign_key_constraint_on:
|
|
table: message
|
|
column: parent_id
|
|
|
|
- type: insert
|
|
args:
|
|
table: orders
|
|
objects:
|
|
- received_at: '2018-09-21T09:39:44'
|
|
- received_at: '2018-09-21T09:40:44'
|
|
delivered_at: '2018-09-21T09:50:44'
|
|
|
|
- type: track_table
|
|
args:
|
|
name: uuid_test
|
|
schema: public
|
|
|
|
- type: insert
|
|
args:
|
|
table: uuid_test
|
|
objects:
|
|
- uuid_col: 28d6d683-1317-49f7-b1cf-7d195242e4e5
|
|
- uuid_col: 28d6d683-1317-49f7-b1cf-7d195242e4e6
|
|
- uuid_col: 28d6d683-1317-49f7-b1cf-7d195242e4e7
|
|
|
|
# Tables to test '_exist' field
|
|
- type: track_table
|
|
args:
|
|
name: user
|
|
schema: public
|
|
|
|
- type: track_table
|
|
args:
|
|
name: account
|
|
schema: public
|
|
|
|
- type: create_select_permission
|
|
args:
|
|
table: account
|
|
role: user
|
|
permission:
|
|
columns:
|
|
- id
|
|
- account_no
|
|
filter:
|
|
_exists:
|
|
_table: user
|
|
_where:
|
|
id: X-Hasura-User-Id
|
|
is_admin: true
|
|
|
|
- type: create_select_permission
|
|
args:
|
|
table: article
|
|
role: user
|
|
permission:
|
|
columns:
|
|
- author_id
|
|
- content
|
|
- id
|
|
- title
|
|
filter:
|
|
is_published:
|
|
_eq: true
|
|
|
|
- type: create_select_permission
|
|
args:
|
|
table: author
|
|
role: user
|
|
permission:
|
|
columns:
|
|
- id
|
|
- name
|
|
filter: {}
|
|
|
|
- type: track_table
|
|
args: table_with_sql_identifier
|