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 на работу:
- я добавил метаданные в мою модель def в models.py:
class thing(models.Model):
name = models.CharField(max_length=200)
class Meta:
app_label = 'things'
managed = True
- выполнить:
python manage.py makemigrations
- выполнить:
python manage.py migrate
после этого python manage.py showmigrations
показывает миграции, и сайт администратора начал работать.