Два проекта используют одну и ту же базу данных Postgres, а проект на Django
У меня есть два проекта, которые используют одну и ту же базу данных Postgresql. Один из этих проектов написан на Golange, а другой на Django. У меня есть задача в проекте Django, взять данные из таблицы, которая создана в другом проекте. Точнее мне нужно взять данные из таблицы Clients, которая не создана в Django. В проекте Django нет никакой информации о таблице Clients.
Ниже показано, как я беру дату из таблицы Cook, которая создана в проекте Django.
Как я могу взять дату из таблицы Clients таким же образом, как описано выше?
Ниже представлены оба репозитория проекта и несколько скриншотов из базы данных.
https://github.com/NarminSH/Go-Client.git
https://github.com/NarminSH/Lezzetly
Заранее спасибо.
У вас есть несколько вариантов:
- Используйте необработанные SQL-запросы в Django, чтобы просто
SELECT
получить данные из этой таблицы .
- Используйте
inspectdb
, чтобы Django создал модель для таблицыclients
. Для моделиMeta.managed
будет установлено значение False, поэтому Django не будет ее трогать (например, выполнять миграции). Затем вы можете использовать для нее обычные операции Django ORM. - Вручную напишите модель, установив
db_table = "clients"
иmanaged = False
на классе Meta. Затем вы можете использовать для нее обычные операции Django ORM. .
Модель, которую может создать Django (или вы), может выглядеть примерно так
class Client(models.Model):
id = models.IntegerField(primary_key=True)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
# ... etc ...
class Meta:
managed = False
db_table = 'clients'
Создавайте модели Django на основе структуры базы данных, интроспектируя ее с помощью команды inspectdb:
$ python manage.py inspectdb > models.py
Затем вы можете запросить базу данных с помощью Django API.
Посмотрите на https://docs.djangoproject.com/en/3.2/howto/legacy-databases/#auto-generate-the-models