Создание нового веб-приложения Django с MS Sql Server в качестве внутренней базы данных

<<<0>>>В последнее время, работая с несколькими приложениями powerapp, мы заметили, что приложения становятся медленнее день ото дня. Основная причина такой медлительности - увеличение количества валидаций данных на каждой странице и рост объема данных. Мы пришли к решению создать веб-приложение Django, чтобы заменить существующие приложения poweapp. Во время исследования я узнал, что Django не имеет поддержки Ms Sql Server из коробки. Также я не могу создать новую БД на своем сервере, так как перенос таблиц из старой БД в новую потребует много согласований. Есть ли способ, которым я могу использовать существующую БД

Я знаю, что мы можем использовать django-mssql-backend и несколько других сторонних пакетов mssql. Но смогу ли я запускать процедуры хранителя и выполнять другие sql-команды, а также получать данные с помощью операторов select

Да, вы определенно можете использовать существующую базу данных MS SQL Server с помощью Django. Вам необходимо использовать серверную часть базы данных сторонних производителей, такую как django-mssql-backend или mssql-django, поскольку Django не предоставляет встроенной поддержки для MS SQL Server.

Вы можете вызвать хранимую процедуру следующим образом:

from django.db import connection

def call_stored_procedure(param1, param2):
    with connection.cursor() as cursor:
        cursor.callproc('YourStoredProcedureName', [param1, param2])
        result = cursor.fetchall()
    return result

А также вы можете запускать необработанные SQL-запросы следующим образом:

def get_data_from_sql():
    with connection.cursor() as cursor:
        cursor.execute("SELECT * FROM YourTable WHERE condition = %s", [your_value])
        rows = cursor.fetchall()
    return rows

Кроме того, вы можете использовать Django ORM с MS SQL Server.

Я надеюсь, что вам повезет!

Да, вы можете использовать существующую базу данных SQL Server с Django, используя сторонний серверный интерфейс, например django-mssql-backend или mssql-django. Эти серверные части поддерживают хранимые процедуры, необработанные SQL-запросы и позволяют использовать существующую базу данных без переноса схемы, благодаря inspectdb Django. и пользовательские методы выполнения SQL.

pip install django-mssql-backend

Настройте DATABASES в settings.py

DATABASES = {
    'default': {
        'ENGINE': 'mssql',
        'NAME': 'your_db_name',
        'USER': 'your_user',
        'PASSWORD': 'your_password',
        'HOST': 'your_sql_server_host',
        'PORT': '1433',
        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',
        },
    }
}

Используйте inspectdb для обратного проектирования вашей схемы

python manage.py inspectdb > app_name/models.py

ВЫБЕРИТЕ запросы:

from django.db import connection

def custom_query():
    with connection.cursor() as cursor:
        cursor.execute("SELECT * FROM your_table WHERE condition = %s", ['value'])
        rows = cursor.fetchall()
    return rows
Вернуться на верх