создание модели django с подключением к mssql - PullRequest
1 голос
/ 01 октября 2019

Я подключаюсь к устаревшей базе данных mysql в облаке, используя мой проект django. мне нужно выбрать данные и вставить данные, если требуется в таблице БД.

мне нужно написать модель для таблиц, которые уже присутствуют в БД? если так, то есть более 90 таблиц. так что будет, если я создам модель для одной таблицы? Как я могу общаться с базой данных, кроме создания моделей и миграции? Есть ли лучший способ в Джанго? или модель лучше? когда я создаю модель, что происходит в бэкэнде? он снова создает эти таблицы в той же базе данных?

1 Ответ

1 голос
/ 01 октября 2019

Существует несколько способов подключения к устаревшей базе данных;я использую либо создание модели для нужных вам данных из устаревшей базы данных, либо использование необработанного SQL.

Например, если я собираюсь подключиться к устаревшей базе данных в обозримом будущеми выполняя операции чтения и записи, я создам модель, содержащую только поля из сторонней таблицы, которые мне нужны в качестве вторичной базы данных. Этот метод хорошо документирован и требует немного больше времени.

Однако, если я только читаю данные из устаревшей базы данных, которая будет удалена, я создам пользователя только для чтения в устаревшей базе данных,и использую сырой SQL, чтобы получить то, что мне нужно, вот так:

from django.db import connections

cursor = connections["my_secondary_db"].cursor()

cursor.execute("SELECT * FROM my_table")

for row in cursor.fetchall():
    insert_data_into_my_new_system_model(row)

Я делаю это прямо сейчас с устаревшей базой данных SQL Server со старого сайта, когда мы переносим данные пользователей и продуктов в Django / PostgreSQL,Это хорошо послужило мне на протяжении многих лет и сэкономило много времени. Я использовал это для создания подпрограмм синхронизации в одном приложении в качестве команд управления Django, а затем, когда устаревшая база данных была перенесена в Django, я полностью удалил одно приложение, содержащее все подпрограммы синхронизации, для чистогосломать. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...