Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

418
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!