Есть ли лучший способ создать модель, когда в базе данных уже есть таблица - PullRequest
2 голосов
/ 02 мая 2020

В моей базе данных MySQL у меня уже есть таблица fo_dic.

mysql> desc fo_dic;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(11)     | NO   | PRI | NULL    | auto_increment |
| name     | varchar(30) | YES  |     | NULL    |                |
| desc     | text        | YES  |     | NULL    |                |
| author   | varchar(20) | YES  |     | NULL    |                |
| priority | int(5)      | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+

Теперь я хочу создать модель FoDi ​​c с помощью Django для Django Rest Framework для ORM данных.

from django.db import models

class FoDic(models.Model):

    id = models.IntegerField()
    name = models.CharField()
    desc = models.TextField()
    author = models.CharField()
    priority = models.IntegerField()

    def __str__(self):
        return self.name
    def __unicode__(self):
        return self.name

Я хочу знать, является ли это будет генерировать миграции, когда я синхронизирую c базу данных, тогда возникнет конфликт? Есть ли способ создать модель в той же структуре, что и таблица MySQL?

Ответы [ 2 ]

2 голосов
/ 02 мая 2020

Если у вас уже есть настройка базы данных, вы можете автоматически генерировать модели из нее:

python manage.py inspectdb > models.py

Вам не нужно беспокоиться о конфликтах в миграциях, поскольку Django создает ее сама.

Для получения более подробной информации, пожалуйста, обратитесь к this.

1 голос
/ 02 мая 2020

Вы можете добавить это свойство в свой метакласс

Class Meta:
     managed=false

Добавить этот класс вашей модели

...