Django migrate:不创建表

2024-04-27 03:38:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在一些错误之后,我删除了数据库,删除了所有迁移文件(我留下了init.py)。 现在,当我跑的时候

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

但绝对(与我的应用程序相关)是创建的。只有那些和django有关的人。 在migration表中,我的应用程序迁移被标记为已完成,但没有创建任何表,如我所说,这非常令人不快。

以下是我的迁移文件摘录:

# -*- 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,
        },
    ),
....

你知道怎么修吗?


Tags: 文件djangopyimporttruedbmodelsmigrations
3条回答

在Django文档中,^{}:“如果为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。

相关问题 更多 >