Apply an additive table schema migration
curl --request PUT \
--url http://localhost:3890/api/v1/data/{resource}/schema \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"expectedVersion": 123,
"schema": {
"tables": {}
}
}
'import requests
url = "http://localhost:3890/api/v1/data/{resource}/schema"
payload = {
"expectedVersion": 123,
"schema": { "tables": {} }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({expectedVersion: 123, schema: {tables: {}}})
};
fetch('http://localhost:3890/api/v1/data/{resource}/schema', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3890",
CURLOPT_URL => "http://localhost:3890/api/v1/data/{resource}/schema",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'expectedVersion' => 123,
'schema' => [
'tables' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3890/api/v1/data/{resource}/schema"
payload := strings.NewReader("{\n \"expectedVersion\": 123,\n \"schema\": {\n \"tables\": {}\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("http://localhost:3890/api/v1/data/{resource}/schema")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"expectedVersion\": 123,\n \"schema\": {\n \"tables\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3890/api/v1/data/{resource}/schema")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"expectedVersion\": 123,\n \"schema\": {\n \"tables\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"schema": {
"tables": {}
},
"schemaVersion": 123,
"createdAt": "<string>"
}
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}Databases
Apply an additive table schema migration
Requires host authentication and current database grants. Names and stable UUIDs are accepted as resource references. SQL availability and dialect depend on the provider; the PostgreSQL adapter supports a bounded subset, not arbitrary server SQL.
PUT
/
api
/
v1
/
data
/
{resource}
/
schema
Apply an additive table schema migration
curl --request PUT \
--url http://localhost:3890/api/v1/data/{resource}/schema \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"expectedVersion": 123,
"schema": {
"tables": {}
}
}
'import requests
url = "http://localhost:3890/api/v1/data/{resource}/schema"
payload = {
"expectedVersion": 123,
"schema": { "tables": {} }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({expectedVersion: 123, schema: {tables: {}}})
};
fetch('http://localhost:3890/api/v1/data/{resource}/schema', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3890",
CURLOPT_URL => "http://localhost:3890/api/v1/data/{resource}/schema",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'expectedVersion' => 123,
'schema' => [
'tables' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3890/api/v1/data/{resource}/schema"
payload := strings.NewReader("{\n \"expectedVersion\": 123,\n \"schema\": {\n \"tables\": {}\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("http://localhost:3890/api/v1/data/{resource}/schema")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"expectedVersion\": 123,\n \"schema\": {\n \"tables\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3890/api/v1/data/{resource}/schema")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"expectedVersion\": 123,\n \"schema\": {\n \"tables\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"schema": {
"tables": {}
},
"schemaVersion": 123,
"createdAt": "<string>"
}
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}{
"ok": false,
"code": "<string>",
"error": "<string>"
}Authorizations
API key passed as a Bearer token. Configure via the apiKeys field in project.json or the POLPO_API_KEY environment variable.
Path Parameters
Required string length:
1 - 128