> ## Documentation Index
> Fetch the complete documentation index at: https://help.teable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Post space data dbmigration rollback

> Rollback a completed space data database migration when no post-switch writes exist

Required token scopes: `space|update`



## OpenAPI

````yaml /swagger.json post /space/{spaceId}/data-db/migration/{jobId}/rollback
openapi: 3.0.0
info:
  version: 1.0.0
  title: Teable App
  description: Manage Data as easy as drink a cup of tea
  x-logo:
    backgroundColor: '#F0F0F0'
    altText: Teable logo
servers:
  - url: https://app.teable.ai/api
security: []
tags:
  - name: base
    x-group: project
  - name: base node
    x-group: project node
  - name: base-share
    x-group: project-share
paths:
  /space/{spaceId}/data-db/migration/{jobId}/rollback:
    post:
      tags:
        - space
      description: >-
        Rollback a completed space data database migration when no post-switch
        writes exist


        Required token scopes: `space|update`
      parameters:
        - schema:
            type: string
          required: true
          name: spaceId
          in: path
        - schema:
            type: string
          required: true
          name: jobId
          in: path
      responses:
        '200':
          description: >-
            Returns the rolled back migration job status without connection
            secrets.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jobId:
                    type: string
                  spaceId:
                    type: string
                  targetMode:
                    type: string
                    enum:
                      - migrate-space
                  switchOnCompletion:
                    type: boolean
                  state:
                    type: string
                    enum:
                      - pending
                      - waiting_worker
                      - preflight
                      - freezing_writes
                      - copying
                      - validating
                      - switching
                      - succeeded
                      - failed
                      - canceled
                      - rolled_back
                  targetInternalSchema:
                    type: string
                  targetConnection:
                    type: object
                    nullable: true
                    properties:
                      provider:
                        type: string
                        enum:
                          - postgres
                      displayHost:
                        type: string
                      displayDatabase:
                        type: string
                      internalSchema:
                        type: string
                      schemaVersion:
                        type: string
                        nullable: true
                      lastValidatedAt:
                        type: string
                      lastError:
                        type: string
                      capabilities:
                        type: object
                        properties:
                          createSchema:
                            type: boolean
                          createTable:
                            type: boolean
                          createFunction:
                            type: boolean
                          createTrigger:
                            type: boolean
                          createRole:
                            type: boolean
                          grantPrivileges:
                            type: boolean
                          inspectActivity:
                            type: boolean
                        required:
                          - createSchema
                          - createTable
                          - createFunction
                          - createTrigger
                          - createRole
                          - grantPrivileges
                          - inspectActivity
                    required:
                      - provider
                  relatedSpaces:
                    type: object
                    properties:
                      primarySpaceId:
                        type: string
                      hasCrossSpaceLinks:
                        type: boolean
                      spaces:
                        type: array
                        items:
                          type: object
                          properties:
                            spaceId:
                              type: string
                            name:
                              type: string
                            isPrimary:
                              type: boolean
                            baseIds:
                              type: array
                              items:
                                type: string
                            tableIds:
                              type: array
                              items:
                                type: string
                            dataDbMode:
                              type: string
                              enum:
                                - default
                                - byodb
                            dataDbState:
                              type: string
                              enum:
                                - ready
                                - validating
                                - initializing
                                - migrating
                                - error
                                - disabled
                            dataDbConnectionId:
                              type: string
                              nullable: true
                            dataDbUrlFingerprint:
                              type: string
                              nullable: true
                            dataDbDatabaseFingerprint:
                              type: string
                              nullable: true
                            dataDbDisplayHost:
                              type: string
                              nullable: true
                            dataDbDisplayDatabase:
                              type: string
                              nullable: true
                            dataDbInternalSchema:
                              type: string
                              nullable: true
                          required:
                            - spaceId
                            - name
                            - isPrimary
                            - baseIds
                            - tableIds
                            - dataDbMode
                      links:
                        type: array
                        items:
                          type: object
                          properties:
                            fromSpaceId:
                              type: string
                            fromTableId:
                              type: string
                            fromFieldId:
                              type: string
                            toSpaceId:
                              type: string
                            toTableId:
                              type: string
                          required:
                            - fromSpaceId
                            - fromTableId
                            - fromFieldId
                            - toSpaceId
                            - toTableId
                    required:
                      - primarySpaceId
                      - hasCrossSpaceLinks
                      - spaces
                      - links
                  inventory:
                    nullable: true
                  copyStats:
                    nullable: true
                  validationStats:
                    nullable: true
                  lastError:
                    type: string
                    nullable: true
                  startedAt:
                    type: string
                    nullable: true
                  completedAt:
                    type: string
                    nullable: true
                  createdTime:
                    type: string
                  lastModifiedTime:
                    type: string
                    nullable: true
                required:
                  - jobId
                  - spaceId
                  - targetMode
                  - state
                  - targetInternalSchema
                  - createdTime
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://app.teable.ai/api/space/%7BspaceId%7D/data-db/migration/%7BjobId%7D/rollback \
              --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
        - lang: JavaScript
          source: >-
            const url =
            'https://app.teable.ai/api/space/%7BspaceId%7D/data-db/migration/%7BjobId%7D/rollback';

            const options = {method: 'POST', headers: {Authorization: 'Bearer
            REPLACE_BEARER_TOKEN'}};


            try {
              const response = await fetch(url, options);
              const data = await response.json();
              console.log(data);
            } catch (error) {
              console.error(error);
            }
        - lang: Node.js
          source: |-
            const http = require('https');

            const options = {
              method: 'POST',
              hostname: 'app.teable.ai',
              port: null,
              path: '/api/space/%7BspaceId%7D/data-db/migration/%7BjobId%7D/rollback',
              headers: {
                Authorization: 'Bearer REPLACE_BEARER_TOKEN'
              }
            };

            const req = http.request(options, function (res) {
              const chunks = [];

              res.on('data', function (chunk) {
                chunks.push(chunk);
              });

              res.on('end', function () {
                const body = Buffer.concat(chunks);
                console.log(body.toString());
              });
            });

            req.end();
        - lang: Python
          source: >-
            import http.client


            conn = http.client.HTTPSConnection("app.teable.ai")


            headers = { 'Authorization': "Bearer REPLACE_BEARER_TOKEN" }


            conn.request("POST",
            "/api/space/%7BspaceId%7D/data-db/migration/%7BjobId%7D/rollback",
            headers=headers)


            res = conn.getresponse()

            data = res.read()


            print(data.decode("utf-8"))
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````