Django inspectdb не создает первичные ключи

Когда я запускаю python manage.py inspectdb --database totals > modelstest.py, он работает, как ожидалось, и я получаю свои модели, но он не создает первичные ключи и не добавляет поле id, хотя все, что я могу найти в Интернете, говорит, что это так. Я зашел в файл настроек и добавил DEFAULT_AUTO_FIELD='django.db.models.AutoField', но теперь, когда я пытаюсь мигрировать снова, мигрировать некуда, я промыл базу данных и попытался мигрировать снова, но это ничего не дало, я немного запутался, как я могу мигрировать снова, чтобы включить эту автоматическую настройку полей?

Сгенерированная модель:

class Nbav8(models.Model):
    home_team_field = models.TextField(db_column='HOME TEAM:', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
    away_team_field = models.TextField(db_column='AWAY TEAM:', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
    projected_points_field = models.FloatField(db_column='PROJECTED POINTS:', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
    home_injury = models.TextField(db_column='Home Injury', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    away_injury = models.TextField(db_column='Away Injury', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    game_points_with_formula_field = models.BigIntegerField(db_column='GAME POINTS WITH FORMULA:', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
    game_money_line_field = models.FloatField(db_column='GAME MONEY LINE:', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
    over_or_under = models.TextField(db_column='OVER OR UNDER', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.

    class Meta:
        db_table = 'nbav8'

Удалено управляемое поле согласно комментарию.

Итак, я смог заставить это работать, добавив автоматически увеличивающееся поле id в базу данных mysql. Я также настроил модель как managed = True

class Nbav8(models.Model):
    home_team_field = models.TextField(db_column='HOME TEAM:', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
    away_team_field = models.TextField(db_column='AWAY TEAM:', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
    projected_points_field = models.FloatField(db_column='PROJECTED POINTS:', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
    home_injury = models.TextField(db_column='Home Injury', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    away_injury = models.TextField(db_column='Away Injury', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    game_points_with_formula_field = models.BigIntegerField(db_column='GAME POINTS WITH FORMULA:', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
    game_money_line_field = models.FloatField(db_column='GAME MONEY LINE:', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters. Field renamed because it ended with '_'.
    over_or_under = models.TextField(db_column='OVER OR UNDER', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.

    class Meta:
        managed = True
        db_table = 'nbav8'

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

Вернуться на верх