Migration Plan [deprecated]

https://{your-workspace-slug}.{region}.xata.sh/db/db_branch_name/migrations/plan

This endpoint enables creating a migration plan for a given database branch.

Expected parameters

NameDescriptionInRequiredSchema
db_branch_name

Failed to compile MDX

pathstring

Compute Migration Plan [Deprecated]

POST
https://{your-workspace-slug}.{region}.xata.sh/db/db_branch_name/migrations/plan

Compute a migration plan from a target schema the branch should be migrated too.

Request Body Type Definition

type GetBranchMigrationPlan = Schema;
 
type Schema = {
    tables: Table[];
    tablesOrder?: string[];
};
 
type Table = {
    id?: string;
    name: TableName;
    columns: Column[];
    revLinks?: RevLink[];
};
 
/**
 * @maxLength 255
 * @minLength 1
 * @pattern [a-zA-Z0-9_\-~]+
 */
type TableName = 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 RevLink = {
    table: string;
    column: string;
};
 
type ColumnLink = {
    table: string;
};
 
type ColumnVector = {
    /**
     * @maximum 10000
     * @minimum 2
     */
    dimension: number;
};
 
type ColumnFile = {
    defaultPublicAccess?: boolean;
};

Responses

type GetBranchMigrationPlan = {
    version: number;
    migration: BranchMigration;
};
 
type BranchMigration = {
    id?: string;
    parentID?: string;
    status: string;
    title?: string;
    lastGitRevision?: string;
    localChanges: boolean;
    createdAt?: DateTime;
    newTables?: {
        [key: string]: Table;
    };
    removedTables?: string[];
    tableMigrations?: {
        [key: string]: TableMigration;
    };
    newTableOrder: string[];
    renamedTables?: TableRename[];
};
 
/**
 * @format date-time
 */
type DateTime = string;
 
type Table = {
    id?: string;
    name: TableName;
    columns: Column[];
    revLinks?: RevLink[];
};
 
type TableMigration = {
    newColumns?: {
        [key: string]: Column;
    };
    removedColumns?: string[];
    modifiedColumns?: ColumnMigration[];
    newColumnOrder: string[];
};
 
/**
 * @example {"newName":"newName","oldName":"oldName"}
 */
type TableRename = {
    /**
     * @minLength 1
     */
    newName: string;
    /**
     * @minLength 1
     */
    oldName: string;
};
 
/**
 * @maxLength 255
 * @minLength 1
 * @pattern [a-zA-Z0-9_\-~]+
 */
type TableName = 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 RevLink = {
    table: string;
    column: string;
};
 
type ColumnMigration = {
    old: Column;
    ["new"]: Column;
};
 
type ColumnLink = {
    table: string;
};
 
type ColumnVector = {
    /**
     * @maximum 10000
     * @minimum 2
     */
    dimension: number;
};
 
type ColumnFile = {
    defaultPublicAccess?: boolean;
};