Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

406
Visualizações
Ejecutando el código sqlsequencereset de Django desde Python

El comandosqlsequencereset de Django devuelve los comandos SQL necesarios para restablecer secuencias en la base de datos.

Otros comandos de administración similares ejecutan automáticamente el SQL de forma predeterminada (y solo imprimen el resultado si especifica la opción --dry-run).

Desde la línea de comandos puede ejecutar los comandos devueltos con:

 python manage.py sqlsequencereset app1_name app2_name | python manage.py dbshell

Pero... ¿Hay alguna manera de ejecutar directamente el código devuelto desde sqlsequencereset desde dentro de python?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Puede ejecutar la consulta SQL generada por sqlsequencereset desde Python de esta manera ( usando la base de datos predeterminada ):

 from django.core.management.color import no_style from django.db import connection from myapps.models import MyModel1, MyModel2 sequence_sql = connection.ops.sequence_reset_sql(no_style(), [MyModel1, MyModel2]) with connection.cursor() as cursor: for sql in sequence_sql: cursor.execute(sql)

Probé este código con Python3.6 , Django 2.0 y PostgreSQL 10 .

over 4 years ago · Santiago Trujillo Relatório

0

Actualmente estoy gestionando esto por:

  1. Usando call_command para ejecutar sqlsequencereset
  2. Tomando la salida en un objeto StringIO en memoria (en lugar de escribir en un archivo en el disco)
  3. Ejecutar el SQL directamente contra la base de datos predeterminada de Django

Código:

 import io from django.core.management import call_command from django.db import connection app_name = 'my_app' # Get SQL commands from sqlsequencereset output = io.StringIO() call_command('sqlsequencereset', app_name, stdout=output, no_color=True) sql = output.getvalue() with connection.cursor() as cursor: cursor.execute(sql) output.close()
over 4 years ago · Santiago Trujillo Relatório

0

también vea [this gist][1] , donde se puede hacer, por ejemplo, desde la consola para todas las aplicaciones.

 import os os.environ['DJANGO_COLORS'] = 'nocolor' from django.core.management import call_command from django.db import connection from django.apps import apps from io import StringIO commands = StringIO() cursor = connection.cursor() for app in apps.get_app_configs(): call_command('sqlsequencereset', app.label, stdout=commands) cursor.execute(commands.getvalue())
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda