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

# Inicia uma migração de schema

> Inicia o processo de migração para uma nova versão de schema. O sistema será bloqueado para operações CUD durante a migração.



## OpenAPI

````yaml https://raw.githubusercontent.com/prefeitura-rio/app-busca-search/refs/heads/main/docs/openapi-v3.json post /api/v1/admin/migration/start
openapi: 3.0.0
info:
  description: >-
    API para busca textual e vetorial usando Typesense e embeddings gerados via
    Google Gemini
  title: Mecanismo de Busca API
  termsOfService: http://swagger.io/terms/
  contact:
    name: Prefeitura do Rio de Janeiro
    url: https://prefeitura.rio
    email: contato@prefeitura.rio
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: '1.0'
servers:
  - url: https://services.pref.rio/app-busca-search
    description: Production server
  - url: https://services.staging.app.dados.rio/app-busca-search
    description: Staging server
security: []
paths:
  /api/v1/admin/migration/start:
    post:
      tags:
        - migration
      summary: Inicia uma migração de schema
      description: >-
        Inicia o processo de migração para uma nova versão de schema. O sistema
        será bloqueado para operações CUD durante a migração.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.MigrationStartRequest'
        description: Dados da migração
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.MigrationStatusResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
      security:
        - bearerAuth: []
components:
  schemas:
    models.MigrationStartRequest:
      type: object
      required:
        - schema_version
      properties:
        async:
          description: Se true, executa em background (para API)
          type: boolean
        dry_run:
          type: boolean
        schema_version:
          type: string
    models.MigrationStatusResponse:
      type: object
      properties:
        backup_collection:
          type: string
        completed_at:
          type: integer
        error_message:
          type: string
        is_locked:
          type: boolean
        migrated_documents:
          type: integer
        progress:
          type: number
        schema_version:
          type: string
        source_collection:
          type: string
        started_at:
          type: integer
        started_by:
          type: string
        status:
          $ref: '#/components/schemas/models.MigrationStatus'
        target_collection:
          type: string
        total_documents:
          type: integer
    models.MigrationStatus:
      type: string
      enum:
        - idle
        - in_progress
        - completed
        - failed
        - rollback
      x-enum-varnames:
        - MigrationStatusIdle
        - MigrationStatusInProgress
        - MigrationStatusCompleted
        - MigrationStatusFailed
        - MigrationStatusRollback
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````