Django migrate: не создает таблицы

после некоторых ошибок я уронил свою базу данных, удалил все файлы миграции (я оставил init.py). Теперь, когда я бегу

python migrate.py makemigrations   // It creates migrations correctly
python migrate.py migrate          // It outputs "app.0001_initial OK"

но абсолютно нет таблица (связано с моим приложением) является создано. Только те, которые связаны с django. И в таблице миграции моя миграция приложения отмечена, но таблица не была создана, как я сказал, Это очень неприятно.

вот выдержка из моего файла миграции :

# -*- coding: utf-8 -*-
# Generated by Django 1.9 on 2016-02-18 21:59
from __future__ import unicode_literals

import colorful.fields
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Client',
            fields=[
                ('id', models.AutoField(db_column='idtblclients', primary_key=True, serialize=False)),
                ('genre1', models.CharField(blank=True, max_length=10)),
            ('prenom1', models.CharField(blank=True, max_length=45)),
            ('nom1', models.CharField(blank=True, max_length=45)),
            ('genre2', models.CharField(blank=True, max_length=10)),
            ('prenom2', models.CharField(blank=True, max_length=45)),
            ('nom2', models.CharField(blank=True, max_length=45)),
            ('courriel', models.CharField(blank=True, max_length=45)),
            ('langue', models.CharField(blank=True, max_length=1)),
            ('numtel1', models.CharField(blank=True, db_column='NumTel1', max_length=20)),
            ('numtel2', models.CharField(blank=True, db_column='NumTel2', max_length=20)),
            ('numcivique', models.CharField(blank=True, db_column='NumCivique', max_length=15)),
            ('rue', models.CharField(blank=True, db_column='Rue', max_length=45)),
            ('ville', models.CharField(blank=True, db_column='Ville', max_length=45)),
            ('codepostal', models.CharField(blank=True, db_column='CodePostal', max_length=45)),
            ('timestamp', models.DateTimeField(blank=True, db_column='Timestamp', null=True)),
            ('zone', models.CharField(blank=True, db_column='Zone', max_length=45)),
        ],
        options={
            'db_table': 'tblclients',
            'managed': False,
        },
    ),
....

у вас есть идея, как это исправить ?

5 ответов


из django docs,Options.managed: "если False, для этой модели не будут выполняться операции создания или удаления таблицы базы данных."

и я вижу, что у вас есть

   options={
        'db_table': 'tblclients',
        'managed': False,
    },

попробуйте managed=True в модели.


python manage.py migrate --fake APPNAME zero

это сделает вашу миграцию поддельной. Теперь вы можете запустить скрипт миграции

python manage.py migrate APPNAME

будут созданы таблицы и ты решил свою проблему.. Ура!!!


в моем случае то, что создало таблицы, было следующим:

python manage.py migrate --run-syncdb

Я использую Django 1.9.6.


я сталкиваюсь с той же проблемой:

python manage.py migrate poll
Operations to perform:
  Apply all migrations: poll
Running migrations:
  No migrations to apply.

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

перейдите в папку приложения

1.удалить папку миграции.

2.python manage.py макемиграции.

3 переименовать 0001_initial.py файл в 0001_initial_manual.py.

4 python manage.py перенесите APPNAME.

после этого мои таблицы создавались плавно.

python manage.py migrate poll
Operations to perform:
  Apply all migrations: poll
Running migrations:
  Applying poll.0002_initial... OK

вот как я получил ответ @JulienD на работу:

  1. я добавил метаданные в мою модель def в models.py:

class thing(models.Model): name = models.CharField(max_length=200) class Meta: app_label = 'things' managed = True

  1. выполнить:

python manage.py makemigrations

  1. выполнить:

python manage.py migrate

после этого python manage.py showmigrations показывает миграции, и сайт администратора начал работать.