Push migrations.
https://{your-workspace-slug}.{region}.xata.sh/db/db_branch_name/schema/pushApply a list of migrations to the current branch.
Expected parameters
| Name | Description | In | Required | Schema |
|---|---|---|---|---|
db_branch_name | The DBBranchName matches the pattern | path | ✅ | string |
Push Migrations.
POSThttps://{your-workspace-slug}.{region}.xata.sh/db/db_branch_name/schema/pushThe schema/push API accepts a list of migrations to be applied to the
current branch. A list of applicable migrations can be fetched using
the schema/history API from another branch or database.
The most recent migration must be part of the list or referenced (via
parentID) by the first migration in the list of migrations to be pushed.
Each migration in the list has an id, parentID, and checksum. The
checksum for migrations are generated and verified by xata. The
operation fails if any migration in the list has an invalid checksum.
Request Body Type Definition
type PushBranchMigrations = {
migrations: MigrationObject[];
};
type MigrationObject = {
title?: string;
message?: string;
id: string;
parentID?: string;
checksum: string;
operations: MigrationOp[];
};
/**
* Branch schema migration operations.
*/
type MigrationOp = MigrationTableOp | MigrationColumnOp;
type MigrationTableOp = {
addTable: TableOpAdd;
} | {
removeTable: TableOpRemove;
} | {
renameTable: TableOpRename;
};
type MigrationColumnOp = {
addColumn: ColumnOpAdd;
} | {
removeColumn: ColumnOpRemove;
} | {
renameColumn: ColumnOpRename;
};
type TableOpAdd = {
table: string;
};
type TableOpRemove = {
table: string;
};
type TableOpRename = {
oldName: string;
newName: string;
};
type ColumnOpAdd = {
table: string;
column: Column;
};
type ColumnOpRemove = {
table: string;
column: string;
};
type ColumnOpRename = {
table: string;
oldName: string;
newName: string;
};
type Column = {
name: string;
type: "bool" | "int" | "float" | "string" | "text" | "email" | "multiple" | "link" | "object" | "datetime" | "vector" | "file[]" | "file" | "json";
link?: ColumnLink;
vector?: ColumnVector;
file?: ColumnFile;
["file[]"]?: ColumnFile;
notNull?: boolean;
defaultValue?: string;
unique?: boolean;
columns?: Column[];
};
type ColumnLink = {
table: string;
};
type ColumnVector = {
/**
* @maximum 10000
* @minimum 2
*/
dimension: number;
};
type ColumnFile = {
defaultPublicAccess?: boolean;
};Responses
type PushBranchMigrations = {
/**
* @minLength 1
*/
migrationID: string;
parentMigrationID: string;
status: MigrationStatus;
};
type MigrationStatus = "completed" | "pending" | "failed";type PushBranchMigrations = {
id?: string;
message: string;
};{
"message": "invalid API key"
}type PushBranchMigrations = {
id?: string;
message: string;
};type PushBranchMigrations = void;type PushBranchMigrations = void;