Merge pull request #602 from PokeAPI/graphql

This commit is contained in:
Alessandro Pezzè 2021-04-07 16:06:50 +02:00 committed by GitHub
commit d572ea2193
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
179 changed files with 4951 additions and 68 deletions

3
.gitignore vendored
View file

@ -7,3 +7,6 @@ db.*
venv*
node_modules
.vscode
.env
Resources/nginx/ssl/*
!Resources/nginx/ssl/*.sample.*

View file

@ -1,8 +1,10 @@
veekun_pokedex_repository = ../pokedex
local_config = --settings=config.local
docker_config = --settings=config.docker-compose
HASURA_GRAPHQL_ADMIN_SECRET=pokemon
.PHONY: help
.SILENT:
help:
@grep -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?# "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
@ -81,8 +83,20 @@ pull-veekun:
git -C ${veekun_pokedex_repository} checkout master-pokeapi
git -C ${veekun_pokedex_repository} pull
sync-from-veekun: pull pull-veekun # Copy data from ../pokedex to this repository
sync-from-veekun: pull pull-veekun # Copy data from ../pokedex to this repository
cp -a ${veekun_pokedex_repository}/pokedex/data/csv/. ./data/v2/csv
sync-to-veekun: pull pull-veekun # Copy data from this repository to ../pokedex
sync-to-veekun: pull pull-veekun # Copy data from this repository to ../pokedex
cp -a ./data/v2/csv/. ${veekun_pokedex_repository}/pokedex/data/csv
# read-env-file: # Exports ./.env into shell environment variables
# export `egrep -v '^#' .env | xargs`
hasura-export: # Export Hasura configuration
hasura md export --project graphql --admin-secret ${HASURA_GRAPHQL_ADMIN_SECRET}
hasura-apply: # Apply local Hasura configuration
hasura md apply --project graphql --admin-secret ${HASURA_GRAPHQL_ADMIN_SECRET}
hasura-get-anon-schema: # Dumps GraphQL schema
gq http://localhost:8080/v1/graphql --introspect > graphql/schema.graphql

View file

@ -18,30 +18,7 @@
A RESTful API for Pokémon - [pokeapi.co](https://pokeapi.co)
## Join Us On Slack!
Have a question or just want to discuss new ideas and improvements? Hit us up on slack. Consider talking with us here before creating new issue.
This way we can keep issues here a bit more organized and helpful in the long run. Be excellent to each other :smile:
[Sign up](https://pokeapi-slack-invite.herokuapp.com/) easily!
Once you've signed up visit [PokéAPI on Slack](https://pokeapi.slack.com)
## Official Wrappers
* Node server-side [PokeAPI/pokedex-promise-v2](https://github.com/PokeAPI/pokedex-promise-v2) | _Auto caching_
* Browser client-side [PokeAPI/pokeapi-js-wrapper](https://github.com/PokeAPI/pokeapi-js-wrapper) | _Auto caching_
* Java/Kotlin [PokeAPI/pokekotlin](https://github.com/PokeAPI/pokekotlin)
* Python 3 [GregHilmes/pokebase](https://github.com/GregHilmes/pokebase) | _Auto caching_
* Python 2/3 [PokeAPI/pokepy](https://github.com/PokeAPI/pokepy) | _Auto caching_
* PHP [lmerotta/phpokeapi](https://github.com/lmerotta/phpokeapi) | _Auto caching, lazy loading_
* Ruby [rdavid1099/poke-api-v2](https://github.com/rdavid1099/poke-api-v2)
* .Net Standard [mtrdp642/PokeApiNet](https://github.com/mtrdp642/PokeApiNet) | _Auto caching_
* Go [mtslzr/pokeapi-go](https://github.com/mtslzr/pokeapi-go) | _Auto caching_
* Dart [prathanbomb/pokedart](https://github.com/prathanbomb/pokedart)
* Rust [lunik1/pokerust](https://gitlab.com/lunik1/pokerust) | _Auto caching_
* Spring Boot [dlfigueira/spring-pokeapi](https://github.com/dlfigueira/spring-pokeapi) | _Auto caching_
* Swift [kinkofer/PokemonAPI](https://github.com/kinkofer/PokemonAPI)
> Beta GraphQL support is rolling out! Check out the [GraphQL paragraph](#graphql) for more info.
## Setup [![pyVersion37](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/download/releases/3.7/)
@ -81,7 +58,7 @@ from data.v2.build import build_all
build_all()
```
Visit [localhost:8000/api/v2/](localhost:8000/api/v2/) to see the running API!
Visit [localhost:80/api/v2/](localhost:80/api/v2/) to see the running API!
Each time the build script is run, it will iterate over each table in the database, wipe it, and rewrite each row using the data found in data/v2/csv.
@ -95,9 +72,9 @@ make wipe_db
## Docker and Compose
There is also a multi-container setup, managed by [Docker Compose](https://docs.docker.com/compose/). This setup allow you to deploy a production-like environment, with separate containers for each services.
There is also a multi-container setup, managed by [Docker Compose](https://docs.docker.com/compose/). This setup allows you to deploy a production-like environment, with separate containers for each services and is recommended if you need to simply spin up PokeAPI.
Start everything by simply
Start everything by
```sh
make docker-setup
@ -113,14 +90,59 @@ docker-compose exec -T app sh -c 'echo "from data.v2.build import build_all; bui
Browse [localhost/api/v2/](http://localhost/api/v2/) or [localhost/api/v2/pokemon/bulbasaur/](http://localhost/api/v2/pokemon/bulbasaur/) on port `80`.
## GraphQL
<a href="ttps://github.com/hasura/graphql-engine">
<img width="100px" src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_blue.svg" />
</a>
When you start PokeAPI with the above docker-compose setup, an [Hasura Engine](https://github.com/hasura/graphql-engine) server is started as well. It's possible to track all the PokeAPI tables and foreign keys by simply
```sh
# hasura cli needs to be installed and available in your $PATH: https://hasura.io/docs/latest/graphql/core/hasura-cli/install-hasura-cli.html
# hasura cli's version has to be v2.0.0-alpha.5
make hasura-apply
```
When finished browse http://localhost:8080 and you will find the admin console. The GraphQL endpoint will be hosted at http://localhost:8080/v1/graphql.
A free public GraphiQL console is browsable at the address https://beta.pokeapi.co/graphql/console/. The relative GraphQL endpoint is accessible at https://beta.pokeapi.co/graphql/v1beta
A set of examples are provided in the directory [/graphql/examples](./graphql/examples) of this repository.
## Official REST Wrappers
* Node server-side [PokeAPI/pokedex-promise-v2](https://github.com/PokeAPI/pokedex-promise-v2) | _Auto caching_
* Browser client-side [PokeAPI/pokeapi-js-wrapper](https://github.com/PokeAPI/pokeapi-js-wrapper) | _Auto caching_
* Java/Kotlin [PokeAPI/pokekotlin](https://github.com/PokeAPI/pokekotlin)
* Python 3 [GregHilmes/pokebase](https://github.com/GregHilmes/pokebase) | _Auto caching_
* Python 2/3 [PokeAPI/pokepy](https://github.com/PokeAPI/pokepy) | _Auto caching_
* PHP [lmerotta/phpokeapi](https://github.com/lmerotta/phpokeapi) | _Auto caching, lazy loading_
* Ruby [rdavid1099/poke-api-v2](https://github.com/rdavid1099/poke-api-v2)
* .Net Standard [mtrdp642/PokeApiNet](https://github.com/mtrdp642/PokeApiNet) | _Auto caching_
* Go [mtslzr/pokeapi-go](https://github.com/mtslzr/pokeapi-go) | _Auto caching_
* Dart [prathanbomb/pokedart](https://github.com/prathanbomb/pokedart)
* Rust [lunik1/pokerust](https://gitlab.com/lunik1/pokerust) | _Auto caching_
* Spring Boot [dlfigueira/spring-pokeapi](https://github.com/dlfigueira/spring-pokeapi) | _Auto caching_
* Swift [kinkofer/PokemonAPI](https://github.com/kinkofer/PokemonAPI)
## Donations
Help to keep PokéAPI running! If you're using PokéAPI as a teaching resource or for a project, consider sending us a $10 donation to help keep the service up. We get almost 20 million requests a month!
Help to keep PokéAPI running! If you're using PokéAPI as a teaching resource or for a project, consider sending us a $10 donation to help keep the service up. We get 60 million requests a month!
Thank you to all our backers! [Become a backer](https://opencollective.com/pokeapi#backer)
<a href="https://opencollective.com/pokeapi#backers" target="_blank"><img src="https://opencollective.com/pokeapi/backers.svg?width=890"></a>
## Join Us On Slack!
Have a question or just want to discuss new ideas and improvements? Hit us up on slack. Consider talking with us here before creating new issue.
This way we can keep issues here a bit more organized and helpful in the long run. Be excellent to each other :smile:
[Sign up](https://pokeapi-slack-invite.herokuapp.com/) easily!
Once you've signed up visit [PokéAPI on Slack](https://pokeapi.slack.com)
## Contributing
This project exists thanks to all the people who [contribute](https://github.com/PokeAPI/pokeapi/blob/master/CONTRIBUTING.md)

View file

@ -0,0 +1,31 @@
version: '2.4'
services:
db:
environment:
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
POSTGRES_USER: "${POSTGRES_USER}"
app:
env_file: .env
web:
volumes:
- graphiql:/public-console:ro
graphql-engine:
environment:
HASURA_GRAPHQL_DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/pokeapi"
HASURA_GRAPHQL_ADMIN_SECRET: "${HASURA_GRAPHQL_ADMIN_SECRET}"
graphiql:
image: pokeapi/graphiql:1.0.1
command: sh -c 'cp -a /app/static/. /transfer/ && tail -f /etc/passwd'
volumes:
- graphiql:/transfer
depends_on:
- graphql-engine
volumes:
graphiql:
# docker-compose -f docker-compose.yml -f Resources/compose/docker-compose-graphql.yml up

View file

@ -1,2 +0,0 @@
FROM nginx:alpine
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf

View file

@ -1,7 +1,7 @@
worker_processes 4; # 80$ droplet, so 4 core enabled
worker_processes 2;
events {
worker_connections 8096; # accepted incoming connections*2
worker_connections 4096;
multi_accept on; # accept each connection as soon as you can
accept_mutex off;
use epoll;
@ -17,7 +17,7 @@ http {
client_body_buffer_size 10K; # raise the threshold by which requests are written to HDD instead of RAM
client_header_buffer_size 2k;
client_max_body_size 8m; # we dont accept requests larger that 8mb, probably you are DoSing us
client_max_body_size 8m; # we dont accept requests larger that 8mb
sendfile on;
tcp_nopush on;
@ -25,57 +25,95 @@ http {
keepalive_timeout 5;
gzip on; # enable zipping files
gzip_vary on;
gzip_min_length 5120; # enable it only for medium-big files (slowbro size is 7000)
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml application/json;
gzip on;
gzip_disable "msi6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/xhtml+xml application/xml font/eot font/otf font/ttf image/svg+xml text/css text/javascript text/plain text/xml;
upstream pokeapi_upstream {
# 'app' is the Django container name in Docker
# DO NOT EDIT IT ALONE or it'll break docker-compose
server app:8000 fail_timeout=0;
}
upstream graphql_upstream {
server graphql-engine:8080 fail_timeout=0;
}
geo $limit {
default 1;
10.0.0.0/8 0;
192.168.0.0/24 0;
}
map $limit $limit_key {
0 "";
1 $binary_remote_addr;
}
limit_req_zone $limit_key zone=graphqlDefaultLimit:50m rate=1r/m;
limit_conn_zone $binary_remote_addr zone=addr:20m;
server {
listen 80 deferred;
server_name _;
root /code;
include /ssl/ssl.conf*;
client_body_timeout 5s;
client_header_timeout 5s;
limit_conn addr 10;
root /code;
location /media/ {
root /code;
autoindex off;
}
location /static/ {
alias /code/assets/;
autoindex off;
}
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { # cache all these extensions for 5 days, disable logging
access_log off;
log_not_found off;
expires 5d;
# Admin console
location /graphql/admin/ {
expires 1m; # client-side caching, one minute for each API resource
add_header Cache-Control "public";
add_header Pragma public;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://graphql_upstream/;
}
location /graphql/console {
alias /public-console/;
index index.html;
try_files $uri $uri/ /index.html =405;
}
location /graphql/v1beta {
limit_req zone=graphqlDefaultLimit burst=100 nodelay;
limit_req_status 429;
expires 1m; # client-side caching, one minute for each API resource
add_header Cache-Control "public";
add_header Pragma public;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://graphql_upstream/v1/graphql;
}
location /api/ {
expires 1m; # client-side caching, one minute for each API resource
add_header Cache-Control "public";
add_header Pragma public;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://pokeapi_upstream;
}
@ -83,9 +121,7 @@ http {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://pokeapi_upstream;
}
}

View file

@ -0,0 +1,14 @@
# Copy this file to ssl.conf, add certificate and private key to enable ssl
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /ssl/cert.cer;
ssl_certificate_key /ssl/key.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

11
apollo.config.js Normal file
View file

@ -0,0 +1,11 @@
module.exports = {
client: {
service: {
name: "pokeapi",
url: "http://localhost:8080/v1/graphql",
headers: {
"x-hasura-admin-secret": "pokemon",
},
},
},
};

View file

@ -1,12 +1,13 @@
# Docker settings
import os
from .settings import *
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "pokeapi",
"USER": "ash",
"PASSWORD": "pokemon",
"USER": os.environ.get("POSTGRES_USER", "ash"),
"PASSWORD": os.environ.get("POSTGRES_PASSWORD", "pokemon"),
"HOST": "db",
"PORT": 5432,
}
@ -25,3 +26,5 @@ CACHES = {
DEBUG = False
TASTYPIE_FULL_DEBUG = False
ALLOWED_HOSTS = ["*"]

View file

@ -4,6 +4,7 @@ services:
image: redis:alpine
volumes:
- redis_data:/data
restart: always
db:
image: postgres
@ -13,6 +14,7 @@ services:
POSTGRES_DB: 'pokeapi'
volumes:
- pg_data:/var/lib/postgresql/data
restart: always
app:
build:
@ -26,19 +28,40 @@ services:
depends_on:
- db
- cache
restart: always
web:
build:
context: ./Resources
dockerfile: ./docker/web/Dockerfile
image: nginx:alpine
ports:
- "80:80"
- "443:443"
restart: always
# command: [nginx-debug, '-g', 'daemon off;']
volumes:
- ./Resources/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./Resources/nginx/ssl:/ssl:ro
volumes_from:
- app:ro
links:
- app
graphql-engine:
image: hasura/graphql-engine:v2.0.0-alpha.5
ports:
- "8080:8080"
depends_on:
- "db"
restart: always
environment:
HASURA_GRAPHQL_DATABASE_URL: postgres://ash:pokemon@db:5432/pokeapi
HASURA_GRAPHQL_ENABLE_CONSOLE: "true"
HASURA_GRAPHQL_DEV_MODE: "false"
HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
HASURA_GRAPHQL_ADMIN_SECRET: pokemon
HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anon
HASURA_GRAPHQL_ENABLE_TELEMETRY: "false"
# HASURA_GRAPHQL_CONSOLE_ASSETS_DIR: /srv/console-assets
volumes:
pg_data:
redis_data:

6
graphql/config.yaml Normal file
View file

@ -0,0 +1,6 @@
version: 3
endpoint: http://localhost:8080
metadata_directory: metadata
actions:
kind: synchronous
handler_webhook_baseurl: http://localhost:3000

View file

@ -0,0 +1,26 @@
"""
Finds Pokemons in Alola that evolve when you are in a particular location.
Variables:
{
"region": "alola"
}
"""
query location_evolutions_in_alola($region: String) {
region: pokemon_v2_region(where: {name: {_eq: $region}}) {
name
location: pokemon_v2_locations_aggregate(where: {pokemon_v2_pokemonevolutions: {id: {_is_null: false}}}) {
nodes {
name
evolutions: pokemon_v2_pokemonevolutions_aggregate {
nodes {
species: pokemon_v2_pokemonspecy {
name
}
}
}
}
}
}
}

View file

@ -0,0 +1,35 @@
"""
Returns the strongest 3 grass and poison pokemon. It uses thier stats to compute their strenght.
"""
query best_grass_poison_pokemons {
pokemon: pokemon_v2_pokemon(
where: {
_and: [
{
pokemon_v2_pokemontypes: {
pokemon_v2_type: { name: { _eq: "grass" } }
}
}
{
pokemon_v2_pokemontypes: {
pokemon_v2_type: { name: { _eq: "poison" } }
}
}
]
}
order_by: {
pokemon_v2_pokemonstats_aggregate: { sum: { base_stat: desc } }
}
limit: 3
) {
name
stats: pokemon_v2_pokemonstats_aggregate(order_by: {}) {
aggregate {
sum {
base_stat
}
}
}
}
}

View file

@ -0,0 +1,17 @@
query samplePokeAPIquery {
# Gets all the pokemon belonging to generation 3
gen3_species: pokemon_v2_pokemonspecies(where: {pokemon_v2_generation: {name: {_eq: "generation-iii"}}}, order_by: {id: asc}) {
name
id
}
# You can run multiple queries at the same time
# Counts how many pokemon where release for each generation
generations: pokemon_v2_generation {
name
pokemon_species: pokemon_v2_pokemonspecies_aggregate {
aggregate {
count
}
}
}
}

View file

@ -0,0 +1,14 @@
{
"name": "examples",
"version": "1.0.0",
"description": "",
"main": "''",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"node-fetch": "^2.6.1"
}
}

127
graphql/examples/pokemon.js Normal file
View file

@ -0,0 +1,127 @@
/*
Get's many details about Staryu.
It gets:
- happiness
- if legendary/mythical
- generation
- habitat
- height
- weight
- ID
- abilities
- stats
- types
- learnable moves by leveling up
- in how many locations it can be found
- holdable items in Fire Red
- flavor text
*/
// Node doesn't implement fetch so we have to import it
const fetch =require("node-fetch");
async function fetchGraphQL(operationsDoc, operationName, variables) {
const result = await fetch(
"http://localhost:80/graphql/v1beta",
{
method: "POST",
body: JSON.stringify({
query: operationsDoc,
variables: variables,
operationName: operationName
})
}
);
return await result.json();
}
const operationsDoc = `
query pokemon_details {
species: pokemon_v2_pokemonspecies(where: {name: {_eq: "staryu"}}) {
name
base_happiness
is_legendary
is_mythical
generation: pokemon_v2_generation {
name
}
habitat: pokemon_v2_pokemonhabitat {
name
}
pokemon: pokemon_v2_pokemons_aggregate(limit: 1) {
nodes {
height
name
id
weight
abilities: pokemon_v2_pokemonabilities_aggregate {
nodes {
ability: pokemon_v2_ability {
name
}
}
}
stats: pokemon_v2_pokemonstats {
base_stat
stat: pokemon_v2_stat {
name
}
}
types: pokemon_v2_pokemontypes {
slot
type: pokemon_v2_type {
name
}
}
levelUpMoves: pokemon_v2_pokemonmoves_aggregate(where: {pokemon_v2_movelearnmethod: {name: {_eq: "level-up"}}}, distinct_on: move_id) {
nodes {
move: pokemon_v2_move {
name
}
level
}
}
foundInAsManyPlaces: pokemon_v2_encounters_aggregate {
aggregate {
count
}
}
fireRedItems: pokemon_v2_pokemonitems(where: {pokemon_v2_version: {name: {_eq: "firered"}}}) {
pokemon_v2_item {
name
cost
}
rarity
}
}
}
flavorText: pokemon_v2_pokemonspeciesflavortexts(where: {pokemon_v2_language: {name: {_eq: "en"}}, pokemon_v2_version: {name: {_eq: "firered"}}}) {
flavor_text
}
}
}
`;
function fetchPokemon_details() {
return fetchGraphQL(
operationsDoc,
"pokemon_details",
{}
);
}
async function startFetchPokemon_details() {
const { errors, data } = await fetchPokemon_details();
if (errors) {
// handle those errors like a pro
console.error(errors);
}
// do something great with this precious data
console.log(data);
}
startFetchPokemon_details();

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1,6 @@
actions: []
custom_types:
enums: []
input_objects: []
objects: []
scalars: []

View file

@ -0,0 +1 @@
[]

View file

@ -0,0 +1 @@
[]

View file

@ -0,0 +1,12 @@
- name: default
kind: postgres
configuration:
connection_info:
database_url:
from_env: HASURA_GRAPHQL_DATABASE_URL
pool_settings:
idle_timeout: 180
max_connections: 50
retries: 1
tables: "!include default\\tables\\tables.yaml"
functions: "!include default\\functions\\functions.yaml"

View file

@ -0,0 +1 @@
[]

View file

@ -0,0 +1,50 @@
array_relationships:
- name: pokemon_v2_abilitychanges
using:
foreign_key_constraint_on:
column: ability_id
table:
name: pokemon_v2_abilitychange
schema: public
- name: pokemon_v2_abilityeffecttexts
using:
foreign_key_constraint_on:
column: ability_id
table:
name: pokemon_v2_abilityeffecttext
schema: public
- name: pokemon_v2_abilityflavortexts
using:
foreign_key_constraint_on:
column: ability_id
table:
name: pokemon_v2_abilityflavortext
schema: public
- name: pokemon_v2_abilitynames
using:
foreign_key_constraint_on:
column: ability_id
table:
name: pokemon_v2_abilityname
schema: public
- name: pokemon_v2_pokemonabilities
using:
foreign_key_constraint_on:
column: ability_id
table:
name: pokemon_v2_pokemonability
schema: public
object_relationships:
- name: pokemon_v2_generation
using:
foreign_key_constraint_on: generation_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_ability
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_abilitychangeeffecttexts
using:
foreign_key_constraint_on:
column: ability_change_id
table:
name: pokemon_v2_abilitychangeeffecttext
schema: public
object_relationships:
- name: pokemon_v2_ability
using:
foreign_key_constraint_on: ability_id
- name: pokemon_v2_versiongroup
using:
foreign_key_constraint_on: version_group_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_abilitychange
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_abilitychange
using:
foreign_key_constraint_on: ability_change_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_abilitychangeeffecttext
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_ability
using:
foreign_key_constraint_on: ability_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_abilityeffecttext
schema: public

View file

@ -0,0 +1,20 @@
object_relationships:
- name: pokemon_v2_ability
using:
foreign_key_constraint_on: ability_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
- name: pokemon_v2_versiongroup
using:
foreign_key_constraint_on: version_group_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_abilityflavortext
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_ability
using:
foreign_key_constraint_on: ability_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_abilityname
schema: public

View file

@ -0,0 +1,28 @@
array_relationships:
- name: pokemon_v2_berryflavormaps
using:
foreign_key_constraint_on:
column: berry_id
table:
name: pokemon_v2_berryflavormap
schema: public
object_relationships:
- name: pokemon_v2_berryfirmness
using:
foreign_key_constraint_on: berry_firmness_id
- name: pokemon_v2_item
using:
foreign_key_constraint_on: item_id
- name: pokemon_v2_type
using:
foreign_key_constraint_on: natural_gift_type_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berry
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_berries
using:
foreign_key_constraint_on:
column: berry_firmness_id
table:
name: pokemon_v2_berry
schema: public
- name: pokemon_v2_berryfirmnessnames
using:
foreign_key_constraint_on:
column: berry_firmness_id
table:
name: pokemon_v2_berryfirmnessname
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berryfirmness
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_berryfirmness
using:
foreign_key_constraint_on: berry_firmness_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berryfirmnessname
schema: public

View file

@ -0,0 +1,43 @@
array_relationships:
- name: pokemonV2NaturesByLikesFlavorId
using:
foreign_key_constraint_on:
column: likes_flavor_id
table:
name: pokemon_v2_nature
schema: public
- name: pokemon_v2_berryflavormaps
using:
foreign_key_constraint_on:
column: berry_flavor_id
table:
name: pokemon_v2_berryflavormap
schema: public
- name: pokemon_v2_berryflavornames
using:
foreign_key_constraint_on:
column: berry_flavor_id
table:
name: pokemon_v2_berryflavorname
schema: public
- name: pokemon_v2_natures
using:
foreign_key_constraint_on:
column: hates_flavor_id
table:
name: pokemon_v2_nature
schema: public
object_relationships:
- name: pokemon_v2_contesttype
using:
foreign_key_constraint_on: contest_type_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berryflavor
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_berry
using:
foreign_key_constraint_on: berry_id
- name: pokemon_v2_berryflavor
using:
foreign_key_constraint_on: berry_flavor_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berryflavormap
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_berryflavor
using:
foreign_key_constraint_on: berry_flavor_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_berryflavorname
schema: public

View file

@ -0,0 +1,22 @@
array_relationships:
- name: pokemon_v2_characteristicdescriptions
using:
foreign_key_constraint_on:
column: characteristic_id
table:
name: pokemon_v2_characteristicdescription
schema: public
object_relationships:
- name: pokemon_v2_stat
using:
foreign_key_constraint_on: stat_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_characteristic
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_characteristic
using:
foreign_key_constraint_on: characteristic_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_characteristicdescription
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemonV2MoveBySecondMoveId
using:
foreign_key_constraint_on: second_move_id
- name: pokemon_v2_move
using:
foreign_key_constraint_on: first_move_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contestcombo
schema: public

View file

@ -0,0 +1,32 @@
array_relationships:
- name: pokemon_v2_contesteffecteffecttexts
using:
foreign_key_constraint_on:
column: contest_effect_id
table:
name: pokemon_v2_contesteffecteffecttext
schema: public
- name: pokemon_v2_contesteffectflavortexts
using:
foreign_key_constraint_on:
column: contest_effect_id
table:
name: pokemon_v2_contesteffectflavortext
schema: public
- name: pokemon_v2_moves
using:
foreign_key_constraint_on:
column: contest_effect_id
table:
name: pokemon_v2_move
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contesteffect
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_contesteffect
using:
foreign_key_constraint_on: contest_effect_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contesteffecteffecttext
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_contesteffect
using:
foreign_key_constraint_on: contest_effect_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contesteffectflavortext
schema: public

View file

@ -0,0 +1,32 @@
array_relationships:
- name: pokemon_v2_berryflavors
using:
foreign_key_constraint_on:
column: contest_type_id
table:
name: pokemon_v2_berryflavor
schema: public
- name: pokemon_v2_contesttypenames
using:
foreign_key_constraint_on:
column: contest_type_id
table:
name: pokemon_v2_contesttypename
schema: public
- name: pokemon_v2_moves
using:
foreign_key_constraint_on:
column: contest_type_id
table:
name: pokemon_v2_move
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contesttype
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_contesttype
using:
foreign_key_constraint_on: contest_type_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_contesttypename
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_egggroupnames
using:
foreign_key_constraint_on:
column: egg_group_id
table:
name: pokemon_v2_egggroupname
schema: public
- name: pokemon_v2_pokemonegggroups
using:
foreign_key_constraint_on:
column: egg_group_id
table:
name: pokemon_v2_pokemonegggroup
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_egggroup
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_egggroup
using:
foreign_key_constraint_on: egg_group_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_egggroupname
schema: public

View file

@ -0,0 +1,31 @@
array_relationships:
- name: pokemon_v2_encounterconditionvaluemaps
using:
foreign_key_constraint_on:
column: encounter_id
table:
name: pokemon_v2_encounterconditionvaluemap
schema: public
object_relationships:
- name: pokemon_v2_encounterslot
using:
foreign_key_constraint_on: encounter_slot_id
- name: pokemon_v2_locationarea
using:
foreign_key_constraint_on: location_area_id
- name: pokemon_v2_pokemon
using:
foreign_key_constraint_on: pokemon_id
- name: pokemon_v2_version
using:
foreign_key_constraint_on: version_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_encounter
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_encounterconditionnames
using:
foreign_key_constraint_on:
column: encounter_condition_id
table:
name: pokemon_v2_encounterconditionname
schema: public
- name: pokemon_v2_encounterconditionvalues
using:
foreign_key_constraint_on:
column: encounter_condition_id
table:
name: pokemon_v2_encounterconditionvalue
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_encountercondition
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_encountercondition
using:
foreign_key_constraint_on: encounter_condition_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_encounterconditionname
schema: public

View file

@ -0,0 +1,29 @@
array_relationships:
- name: pokemon_v2_encounterconditionvaluemaps
using:
foreign_key_constraint_on:
column: encounter_condition_value_id
table:
name: pokemon_v2_encounterconditionvaluemap
schema: public
- name: pokemon_v2_encounterconditionvaluenames
using:
foreign_key_constraint_on:
column: encounter_condition_value_id
table:
name: pokemon_v2_encounterconditionvaluename
schema: public
object_relationships:
- name: pokemon_v2_encountercondition
using:
foreign_key_constraint_on: encounter_condition_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_encounterconditionvalue
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_encounter
using:
foreign_key_constraint_on: encounter_id
- name: pokemon_v2_encounterconditionvalue
using:
foreign_key_constraint_on: encounter_condition_value_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_encounterconditionvaluemap
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_encounterconditionvalue
using:
foreign_key_constraint_on: encounter_condition_value_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_encounterconditionvaluename
schema: public

View file

@ -0,0 +1,32 @@
array_relationships:
- name: pokemon_v2_encountermethodnames
using:
foreign_key_constraint_on:
column: encounter_method_id
table:
name: pokemon_v2_encountermethodname
schema: public
- name: pokemon_v2_encounterslots
using:
foreign_key_constraint_on:
column: encounter_method_id
table:
name: pokemon_v2_encounterslot
schema: public
- name: pokemon_v2_locationareaencounterrates
using:
foreign_key_constraint_on:
column: encounter_method_id
table:
name: pokemon_v2_locationareaencounterrate
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_encountermethod
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_encountermethod
using:
foreign_key_constraint_on: encounter_method_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_encountermethodname
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_encounters
using:
foreign_key_constraint_on:
column: encounter_slot_id
table:
name: pokemon_v2_encounter
schema: public
object_relationships:
- name: pokemon_v2_encountermethod
using:
foreign_key_constraint_on: encounter_method_id
- name: pokemon_v2_versiongroup
using:
foreign_key_constraint_on: version_group_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_encounterslot
schema: public

View file

@ -0,0 +1,22 @@
array_relationships:
- name: pokemon_v2_pokemonspecies
using:
foreign_key_constraint_on:
column: evolution_chain_id
table:
name: pokemon_v2_pokemonspecies
schema: public
object_relationships:
- name: pokemon_v2_item
using:
foreign_key_constraint_on: baby_trigger_item_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_evolutionchain
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_evolutiontriggernames
using:
foreign_key_constraint_on:
column: evolution_trigger_id
table:
name: pokemon_v2_evolutiontriggername
schema: public
- name: pokemon_v2_pokemonevolutions
using:
foreign_key_constraint_on:
column: evolution_trigger_id
table:
name: pokemon_v2_pokemonevolution
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_evolutiontrigger
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_evolutiontrigger
using:
foreign_key_constraint_on: evolution_trigger_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_evolutiontriggername
schema: public

View file

@ -0,0 +1,14 @@
object_relationships:
- name: pokemon_v2_growthrate
using:
foreign_key_constraint_on: growth_rate_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_experience
schema: public

View file

@ -0,0 +1,18 @@
array_relationships:
- name: pokemon_v2_pokemonevolutions
using:
foreign_key_constraint_on:
column: gender_id
table:
name: pokemon_v2_pokemonevolution
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_gender
schema: public

View file

@ -0,0 +1,92 @@
array_relationships:
- name: pokemon_v2_abilities
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_ability
schema: public
- name: pokemon_v2_generationnames
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_generationname
schema: public
- name: pokemon_v2_itemgameindices
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_itemgameindex
schema: public
- name: pokemon_v2_locationgameindices
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_locationgameindex
schema: public
- name: pokemon_v2_moves
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_move
schema: public
- name: pokemon_v2_pokemonformgenerations
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_pokemonformgeneration
schema: public
- name: pokemon_v2_pokemonspecies
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_pokemonspecies
schema: public
- name: pokemon_v2_pokemontypepasts
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_pokemontypepast
schema: public
- name: pokemon_v2_typegameindices
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_typegameindex
schema: public
- name: pokemon_v2_types
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_type
schema: public
- name: pokemon_v2_versiongroups
using:
foreign_key_constraint_on:
column: generation_id
table:
name: pokemon_v2_versiongroup
schema: public
object_relationships:
- name: pokemon_v2_region
using:
foreign_key_constraint_on: region_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_generation
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_generation
using:
foreign_key_constraint_on: generation_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_generationname
schema: public

View file

@ -0,0 +1,39 @@
array_relationships:
- name: pokemon_v2_experiences
using:
foreign_key_constraint_on:
column: growth_rate_id
table:
name: pokemon_v2_experience
schema: public
- name: pokemon_v2_growthratedescriptions
using:
foreign_key_constraint_on:
column: growth_rate_id
table:
name: pokemon_v2_growthratedescription
schema: public
- name: pokemon_v2_machines
using:
foreign_key_constraint_on:
column: growth_rate_id
table:
name: pokemon_v2_machine
schema: public
- name: pokemon_v2_pokemonspecies
using:
foreign_key_constraint_on:
column: growth_rate_id
table:
name: pokemon_v2_pokemonspecies
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_growthrate
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_growthrate
using:
foreign_key_constraint_on: growth_rate_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_growthratedescription
schema: public

View file

@ -0,0 +1,102 @@
array_relationships:
- name: pokemonV2PokemonevolutionsByHeldItemId
using:
foreign_key_constraint_on:
column: held_item_id
table:
name: pokemon_v2_pokemonevolution
schema: public
- name: pokemon_v2_berries
using:
foreign_key_constraint_on:
column: item_id
table:
name: pokemon_v2_berry
schema: public
- name: pokemon_v2_evolutionchains
using:
foreign_key_constraint_on:
column: baby_trigger_item_id
table:
name: pokemon_v2_evolutionchain
schema: public
- name: pokemon_v2_itemattributemaps
using:
foreign_key_constraint_on:
column: item_id
table:
name: pokemon_v2_itemattributemap
schema: public
- name: pokemon_v2_itemeffecttexts
using:
foreign_key_constraint_on:
column: item_id
table:
name: pokemon_v2_itemeffecttext
schema: public
- name: pokemon_v2_itemflavortexts
using:
foreign_key_constraint_on:
column: item_id
table:
name: pokemon_v2_itemflavortext
schema: public
- name: pokemon_v2_itemgameindices
using:
foreign_key_constraint_on:
column: item_id
table:
name: pokemon_v2_itemgameindex
schema: public
- name: pokemon_v2_itemnames
using:
foreign_key_constraint_on:
column: item_id
table:
name: pokemon_v2_itemname
schema: public
- name: pokemon_v2_itemsprites
using:
foreign_key_constraint_on:
column: item_id
table:
name: pokemon_v2_itemsprites
schema: public
- name: pokemon_v2_machines
using:
foreign_key_constraint_on:
column: item_id
table:
name: pokemon_v2_machine
schema: public
- name: pokemon_v2_pokemonevolutions
using:
foreign_key_constraint_on:
column: evolution_item_id
table:
name: pokemon_v2_pokemonevolution
schema: public
- name: pokemon_v2_pokemonitems
using:
foreign_key_constraint_on:
column: item_id
table:
name: pokemon_v2_pokemonitem
schema: public
object_relationships:
- name: pokemon_v2_itemcategory
using:
foreign_key_constraint_on: item_category_id
- name: pokemon_v2_itemflingeffect
using:
foreign_key_constraint_on: item_fling_effect_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_item
schema: public

View file

@ -0,0 +1,32 @@
array_relationships:
- name: pokemon_v2_itemattributedescriptions
using:
foreign_key_constraint_on:
column: item_attribute_id
table:
name: pokemon_v2_itemattributedescription
schema: public
- name: pokemon_v2_itemattributemaps
using:
foreign_key_constraint_on:
column: item_attribute_id
table:
name: pokemon_v2_itemattributemap
schema: public
- name: pokemon_v2_itemattributenames
using:
foreign_key_constraint_on:
column: item_attribute_id
table:
name: pokemon_v2_itemattributename
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemattribute
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_itemattribute
using:
foreign_key_constraint_on: item_attribute_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemattributedescription
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_item
using:
foreign_key_constraint_on: item_id
- name: pokemon_v2_itemattribute
using:
foreign_key_constraint_on: item_attribute_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemattributemap
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_itemattribute
using:
foreign_key_constraint_on: item_attribute_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemattributename
schema: public

View file

@ -0,0 +1,29 @@
array_relationships:
- name: pokemon_v2_itemcategorynames
using:
foreign_key_constraint_on:
column: item_category_id
table:
name: pokemon_v2_itemcategoryname
schema: public
- name: pokemon_v2_items
using:
foreign_key_constraint_on:
column: item_category_id
table:
name: pokemon_v2_item
schema: public
object_relationships:
- name: pokemon_v2_itempocket
using:
foreign_key_constraint_on: item_pocket_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemcategory
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_itemcategory
using:
foreign_key_constraint_on: item_category_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemcategoryname
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_item
using:
foreign_key_constraint_on: item_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemeffecttext
schema: public

View file

@ -0,0 +1,20 @@
object_relationships:
- name: pokemon_v2_item
using:
foreign_key_constraint_on: item_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
- name: pokemon_v2_versiongroup
using:
foreign_key_constraint_on: version_group_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemflavortext
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_itemflingeffecteffecttexts
using:
foreign_key_constraint_on:
column: item_fling_effect_id
table:
name: pokemon_v2_itemflingeffecteffecttext
schema: public
- name: pokemon_v2_items
using:
foreign_key_constraint_on:
column: item_fling_effect_id
table:
name: pokemon_v2_item
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemflingeffect
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_itemflingeffect
using:
foreign_key_constraint_on: item_fling_effect_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemflingeffecteffecttext
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_generation
using:
foreign_key_constraint_on: generation_id
- name: pokemon_v2_item
using:
foreign_key_constraint_on: item_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemgameindex
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_item
using:
foreign_key_constraint_on: item_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemname
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_itemcategories
using:
foreign_key_constraint_on:
column: item_pocket_id
table:
name: pokemon_v2_itemcategory
schema: public
- name: pokemon_v2_itempocketnames
using:
foreign_key_constraint_on:
column: item_pocket_id
table:
name: pokemon_v2_itempocketname
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itempocket
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_itempocket
using:
foreign_key_constraint_on: item_pocket_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itempocketname
schema: public

View file

@ -0,0 +1,14 @@
object_relationships:
- name: pokemon_v2_item
using:
foreign_key_constraint_on: item_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_itemsprites
schema: public

View file

@ -0,0 +1,438 @@
array_relationships:
- name: pokemonV2LanguagenamesByLocalLanguageId
using:
foreign_key_constraint_on:
column: local_language_id
table:
name: pokemon_v2_languagename
schema: public
- name: pokemon_v2_abilitychangeeffecttexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_abilitychangeeffecttext
schema: public
- name: pokemon_v2_abilityeffecttexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_abilityeffecttext
schema: public
- name: pokemon_v2_abilityflavortexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_abilityflavortext
schema: public
- name: pokemon_v2_abilitynames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_abilityname
schema: public
- name: pokemon_v2_berryfirmnessnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_berryfirmnessname
schema: public
- name: pokemon_v2_berryflavornames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_berryflavorname
schema: public
- name: pokemon_v2_characteristicdescriptions
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_characteristicdescription
schema: public
- name: pokemon_v2_contesteffecteffecttexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_contesteffecteffecttext
schema: public
- name: pokemon_v2_contesteffectflavortexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_contesteffectflavortext
schema: public
- name: pokemon_v2_contesttypenames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_contesttypename
schema: public
- name: pokemon_v2_egggroupnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_egggroupname
schema: public
- name: pokemon_v2_encounterconditionnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_encounterconditionname
schema: public
- name: pokemon_v2_encounterconditionvaluenames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_encounterconditionvaluename
schema: public
- name: pokemon_v2_encountermethodnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_encountermethodname
schema: public
- name: pokemon_v2_evolutiontriggernames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_evolutiontriggername
schema: public
- name: pokemon_v2_generationnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_generationname
schema: public
- name: pokemon_v2_growthratedescriptions
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_growthratedescription
schema: public
- name: pokemon_v2_itemattributedescriptions
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_itemattributedescription
schema: public
- name: pokemon_v2_itemattributenames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_itemattributename
schema: public
- name: pokemon_v2_itemcategorynames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_itemcategoryname
schema: public
- name: pokemon_v2_itemeffecttexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_itemeffecttext
schema: public
- name: pokemon_v2_itemflavortexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_itemflavortext
schema: public
- name: pokemon_v2_itemflingeffecteffecttexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_itemflingeffecteffecttext
schema: public
- name: pokemon_v2_itemnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_itemname
schema: public
- name: pokemon_v2_itempocketnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_itempocketname
schema: public
- name: pokemon_v2_languagenames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_languagename
schema: public
- name: pokemon_v2_locationareanames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_locationareaname
schema: public
- name: pokemon_v2_locationnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_locationname
schema: public
- name: pokemon_v2_moveattributedescriptions
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_moveattributedescription
schema: public
- name: pokemon_v2_moveattributenames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_moveattributename
schema: public
- name: pokemon_v2_movebattlestylenames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_movebattlestylename
schema: public
- name: pokemon_v2_movedamageclassdescriptions
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_movedamageclassdescription
schema: public
- name: pokemon_v2_movedamageclassnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_movedamageclassname
schema: public
- name: pokemon_v2_moveeffectchangeeffecttexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_moveeffectchangeeffecttext
schema: public
- name: pokemon_v2_moveeffecteffecttexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_moveeffecteffecttext
schema: public
- name: pokemon_v2_moveflavortexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_moveflavortext
schema: public
- name: pokemon_v2_movelearnmethoddescriptions
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_movelearnmethoddescription
schema: public
- name: pokemon_v2_movelearnmethodnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_movelearnmethodname
schema: public
- name: pokemon_v2_movemetaailmentnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_movemetaailmentname
schema: public
- name: pokemon_v2_movemetacategorydescriptions
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_movemetacategorydescription
schema: public
- name: pokemon_v2_movenames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_movename
schema: public
- name: pokemon_v2_movetargetdescriptions
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_movetargetdescription
schema: public
- name: pokemon_v2_movetargetnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_movetargetname
schema: public
- name: pokemon_v2_naturenames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_naturename
schema: public
- name: pokemon_v2_palparkareanames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_palparkareaname
schema: public
- name: pokemon_v2_pokeathlonstatnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_pokeathlonstatname
schema: public
- name: pokemon_v2_pokedexdescriptions
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_pokedexdescription
schema: public
- name: pokemon_v2_pokedexnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_pokedexname
schema: public
- name: pokemon_v2_pokemoncolornames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_pokemoncolorname
schema: public
- name: pokemon_v2_pokemonformnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_pokemonformname
schema: public
- name: pokemon_v2_pokemonhabitatnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_pokemonhabitatname
schema: public
- name: pokemon_v2_pokemonshapenames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_pokemonshapename
schema: public
- name: pokemon_v2_pokemonspeciesdescriptions
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_pokemonspeciesdescription
schema: public
- name: pokemon_v2_pokemonspeciesflavortexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_pokemonspeciesflavortext
schema: public
- name: pokemon_v2_pokemonspeciesnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_pokemonspeciesname
schema: public
- name: pokemon_v2_regionnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_regionname
schema: public
- name: pokemon_v2_statnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_statname
schema: public
- name: pokemon_v2_supercontesteffectflavortexts
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_supercontesteffectflavortext
schema: public
- name: pokemon_v2_typenames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_typename
schema: public
- name: pokemon_v2_versionnames
using:
foreign_key_constraint_on:
column: language_id
table:
name: pokemon_v2_versionname
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_language
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemonV2LanguageByLocalLanguageId
using:
foreign_key_constraint_on: local_language_id
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_languagename
schema: public

View file

@ -0,0 +1,43 @@
array_relationships:
- name: pokemon_v2_locationareas
using:
foreign_key_constraint_on:
column: location_id
table:
name: pokemon_v2_locationarea
schema: public
- name: pokemon_v2_locationgameindices
using:
foreign_key_constraint_on:
column: location_id
table:
name: pokemon_v2_locationgameindex
schema: public
- name: pokemon_v2_locationnames
using:
foreign_key_constraint_on:
column: location_id
table:
name: pokemon_v2_locationname
schema: public
- name: pokemon_v2_pokemonevolutions
using:
foreign_key_constraint_on:
column: location_id
table:
name: pokemon_v2_pokemonevolution
schema: public
object_relationships:
- name: pokemon_v2_region
using:
foreign_key_constraint_on: region_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_location
schema: public

View file

@ -0,0 +1,36 @@
array_relationships:
- name: pokemon_v2_encounters
using:
foreign_key_constraint_on:
column: location_area_id
table:
name: pokemon_v2_encounter
schema: public
- name: pokemon_v2_locationareaencounterrates
using:
foreign_key_constraint_on:
column: location_area_id
table:
name: pokemon_v2_locationareaencounterrate
schema: public
- name: pokemon_v2_locationareanames
using:
foreign_key_constraint_on:
column: location_area_id
table:
name: pokemon_v2_locationareaname
schema: public
object_relationships:
- name: pokemon_v2_location
using:
foreign_key_constraint_on: location_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_locationarea
schema: public

View file

@ -0,0 +1,20 @@
object_relationships:
- name: pokemon_v2_encountermethod
using:
foreign_key_constraint_on: encounter_method_id
- name: pokemon_v2_locationarea
using:
foreign_key_constraint_on: location_area_id
- name: pokemon_v2_version
using:
foreign_key_constraint_on: version_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_locationareaencounterrate
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
- name: pokemon_v2_locationarea
using:
foreign_key_constraint_on: location_area_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_locationareaname
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_generation
using:
foreign_key_constraint_on: generation_id
- name: pokemon_v2_location
using:
foreign_key_constraint_on: location_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_locationgameindex
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
- name: pokemon_v2_location
using:
foreign_key_constraint_on: location_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_locationname
schema: public

View file

@ -0,0 +1,23 @@
object_relationships:
- name: pokemon_v2_growthrate
using:
foreign_key_constraint_on: growth_rate_id
- name: pokemon_v2_item
using:
foreign_key_constraint_on: item_id
- name: pokemon_v2_move
using:
foreign_key_constraint_on: move_id
- name: pokemon_v2_versiongroup
using:
foreign_key_constraint_on: version_group_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_machine
schema: public

View file

@ -0,0 +1,127 @@
array_relationships:
- name: pokemonV2ContestcombosBySecondMoveId
using:
foreign_key_constraint_on:
column: second_move_id
table:
name: pokemon_v2_contestcombo
schema: public
- name: pokemonV2SupercontestcombosBySecondMoveId
using:
foreign_key_constraint_on:
column: second_move_id
table:
name: pokemon_v2_supercontestcombo
schema: public
- name: pokemon_v2_contestcombos
using:
foreign_key_constraint_on:
column: first_move_id
table:
name: pokemon_v2_contestcombo
schema: public
- name: pokemon_v2_machines
using:
foreign_key_constraint_on:
column: move_id
table:
name: pokemon_v2_machine
schema: public
- name: pokemon_v2_moveattributemaps
using:
foreign_key_constraint_on:
column: move_id
table:
name: pokemon_v2_moveattributemap
schema: public
- name: pokemon_v2_movechanges
using:
foreign_key_constraint_on:
column: move_id
table:
name: pokemon_v2_movechange
schema: public
- name: pokemon_v2_moveflavortexts
using:
foreign_key_constraint_on:
column: move_id
table:
name: pokemon_v2_moveflavortext
schema: public
- name: pokemon_v2_movemeta
using:
foreign_key_constraint_on:
column: move_id
table:
name: pokemon_v2_movemeta
schema: public
- name: pokemon_v2_movemetastatchanges
using:
foreign_key_constraint_on:
column: move_id
table:
name: pokemon_v2_movemetastatchange
schema: public
- name: pokemon_v2_movenames
using:
foreign_key_constraint_on:
column: move_id
table:
name: pokemon_v2_movename
schema: public
- name: pokemon_v2_pokemonevolutions
using:
foreign_key_constraint_on:
column: known_move_id
table:
name: pokemon_v2_pokemonevolution
schema: public
- name: pokemon_v2_pokemonmoves
using:
foreign_key_constraint_on:
column: move_id
table:
name: pokemon_v2_pokemonmove
schema: public
- name: pokemon_v2_supercontestcombos
using:
foreign_key_constraint_on:
column: first_move_id
table:
name: pokemon_v2_supercontestcombo
schema: public
object_relationships:
- name: pokemon_v2_contesteffect
using:
foreign_key_constraint_on: contest_effect_id
- name: pokemon_v2_contesttype
using:
foreign_key_constraint_on: contest_type_id
- name: pokemon_v2_generation
using:
foreign_key_constraint_on: generation_id
- name: pokemon_v2_movedamageclass
using:
foreign_key_constraint_on: move_damage_class_id
- name: pokemon_v2_moveeffect
using:
foreign_key_constraint_on: move_effect_id
- name: pokemon_v2_movetarget
using:
foreign_key_constraint_on: move_target_id
- name: pokemon_v2_supercontesteffect
using:
foreign_key_constraint_on: super_contest_effect_id
- name: pokemon_v2_type
using:
foreign_key_constraint_on: type_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_move
schema: public

View file

@ -0,0 +1,32 @@
array_relationships:
- name: pokemon_v2_moveattributedescriptions
using:
foreign_key_constraint_on:
column: move_attribute_id
table:
name: pokemon_v2_moveattributedescription
schema: public
- name: pokemon_v2_moveattributemaps
using:
foreign_key_constraint_on:
column: move_attribute_id
table:
name: pokemon_v2_moveattributemap
schema: public
- name: pokemon_v2_moveattributenames
using:
foreign_key_constraint_on:
column: move_attribute_id
table:
name: pokemon_v2_moveattributename
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_moveattribute
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
- name: pokemon_v2_moveattribute
using:
foreign_key_constraint_on: move_attribute_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_moveattributedescription
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_move
using:
foreign_key_constraint_on: move_id
- name: pokemon_v2_moveattribute
using:
foreign_key_constraint_on: move_attribute_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_moveattributemap
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
- name: pokemon_v2_moveattribute
using:
foreign_key_constraint_on: move_attribute_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_moveattributename
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_movebattlestylenames
using:
foreign_key_constraint_on:
column: move_battle_style_id
table:
name: pokemon_v2_movebattlestylename
schema: public
- name: pokemon_v2_naturebattlestylepreferences
using:
foreign_key_constraint_on:
column: move_battle_style_id
table:
name: pokemon_v2_naturebattlestylepreference
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_movebattlestyle
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
- name: pokemon_v2_movebattlestyle
using:
foreign_key_constraint_on: move_battle_style_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_movebattlestylename
schema: public

View file

@ -0,0 +1,23 @@
object_relationships:
- name: pokemon_v2_move
using:
foreign_key_constraint_on: move_id
- name: pokemon_v2_moveeffect
using:
foreign_key_constraint_on: move_effect_id
- name: pokemon_v2_type
using:
foreign_key_constraint_on: type_id
- name: pokemon_v2_versiongroup
using:
foreign_key_constraint_on: version_group_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_movechange
schema: public

View file

@ -0,0 +1,46 @@
array_relationships:
- name: pokemon_v2_movedamageclassdescriptions
using:
foreign_key_constraint_on:
column: move_damage_class_id
table:
name: pokemon_v2_movedamageclassdescription
schema: public
- name: pokemon_v2_movedamageclassnames
using:
foreign_key_constraint_on:
column: move_damage_class_id
table:
name: pokemon_v2_movedamageclassname
schema: public
- name: pokemon_v2_moves
using:
foreign_key_constraint_on:
column: move_damage_class_id
table:
name: pokemon_v2_move
schema: public
- name: pokemon_v2_stats
using:
foreign_key_constraint_on:
column: move_damage_class_id
table:
name: pokemon_v2_stat
schema: public
- name: pokemon_v2_types
using:
foreign_key_constraint_on:
column: move_damage_class_id
table:
name: pokemon_v2_type
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_movedamageclass
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
- name: pokemon_v2_movedamageclass
using:
foreign_key_constraint_on: move_damage_class_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_movedamageclassdescription
schema: public

View file

@ -0,0 +1,17 @@
object_relationships:
- name: pokemon_v2_language
using:
foreign_key_constraint_on: language_id
- name: pokemon_v2_movedamageclass
using:
foreign_key_constraint_on: move_damage_class_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_movedamageclassname
schema: public

View file

@ -0,0 +1,39 @@
array_relationships:
- name: pokemon_v2_movechanges
using:
foreign_key_constraint_on:
column: move_effect_id
table:
name: pokemon_v2_movechange
schema: public
- name: pokemon_v2_moveeffectchanges
using:
foreign_key_constraint_on:
column: move_effect_id
table:
name: pokemon_v2_moveeffectchange
schema: public
- name: pokemon_v2_moveeffecteffecttexts
using:
foreign_key_constraint_on:
column: move_effect_id
table:
name: pokemon_v2_moveeffecteffecttext
schema: public
- name: pokemon_v2_moves
using:
foreign_key_constraint_on:
column: move_effect_id
table:
name: pokemon_v2_move
schema: public
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_moveeffect
schema: public

View file

@ -0,0 +1,25 @@
array_relationships:
- name: pokemon_v2_moveeffectchangeeffecttexts
using:
foreign_key_constraint_on:
column: move_effect_change_id
table:
name: pokemon_v2_moveeffectchangeeffecttext
schema: public
object_relationships:
- name: pokemon_v2_moveeffect
using:
foreign_key_constraint_on: move_effect_id
- name: pokemon_v2_versiongroup
using:
foreign_key_constraint_on: version_group_id
select_permissions:
- permission:
allow_aggregations: true
columns: "*"
filter: {}
limit: 100000
role: anon
table:
name: pokemon_v2_moveeffectchange
schema: public

Some files were not shown because too many files have changed in this diff Show more