Python 我为数不多的django迁移之一没有运行
我有一个django迁移: 0020删除 这会删除一个表。。。 然后我重建了它,这是为了修复我之前创建的迁移中的一个问题: 0021_cesiumentity.pyPython 我为数不多的django迁移之一没有运行,python,django,postgis,Python,Django,Postgis,我有一个django迁移: 0020删除 这会删除一个表。。。 然后我重建了它,这是为了修复我之前创建的迁移中的一个问题: 0021_cesiumentity.py # -*- coding: utf-8 -*- # Generated by Django 1.9.5 on 2016-12-19 22:45 from __future__ import unicode_literals import django.contrib.gis.db.models.fields from django
# -*- coding: utf-8 -*-
# Generated by Django 1.9.5 on 2016-12-19 22:45
from __future__ import unicode_literals
import django.contrib.gis.db.models.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('swsite', '0020_delete_cesiumentity'),
]
operations = [
migrations.CreateModel(
name='CesiumEntity',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('be_number', models.CharField(max_length=100)),
('image_id', models.CharField(blank=True, max_length=100, null=True)),
('mission_id', models.CharField(blank=True, max_length=100, null=True)),
('product_type', models.CharField(blank=True, max_length=100, null=True)),
('polarization', models.CharField(blank=True, max_length=256, null=True)),
('mode_id', models.CharField(blank=True, max_length=100, null=True)),
('mode_name', models.CharField(blank=True, max_length=100, null=True)),
('acquisition_type', models.CharField(blank=True, max_length=100, null=True)),
('image_size_samples', models.CharField(blank=True, max_length=100, null=True)),
('image_size_lines', models.CharField(blank=True, max_length=100, null=True)),
('sample_spacing_range', models.CharField(blank=True, max_length=100, null=True)),
('line_spacing_azimuth', models.CharField(blank=True, max_length=100, null=True)),
('pass_direction', models.CharField(blank=True, max_length=100, null=True)),
('look_direction', models.CharField(blank=True, max_length=100, null=True)),
('grazing_angle', models.CharField(blank=True, max_length=100, null=True)),
('azimuth_angle', models.CharField(blank=True, max_length=100, null=True)),
('doppler_cone_angle', models.CharField(blank=True, max_length=100, null=True)),
('file_format', models.CharField(blank=True, max_length=100, null=True)),
('name', models.CharField(max_length=100)),
('file_name', models.CharField(max_length=256)),
('country_code', models.CharField(blank=True, max_length=64, null=True)),
('collection_date', models.DateField(blank=True, null=True)),
('collection_start_time', models.CharField(blank=True, max_length=256, null=True)),
('corner_coords', models.CharField(max_length=255)),
('sensor', models.CharField(max_length=128)),
('target_name', models.CharField(blank=True, max_length=256, null=True)),
('file_size', models.IntegerField()),
('dzi_location', models.CharField(max_length=256)),
('kml_location', models.CharField(max_length=256)),
('kmz_location', models.CharField(max_length=256)),
('thumbnail_location', models.CharField(max_length=256)),
('resource_location', models.CharField(max_length=256)),
('processed', models.BooleanField(default=False)),
('created_at', models.DateField(auto_now_add=True)),
('updated_at', models.DateField(auto_now=True)),
('mpoly', django.contrib.gis.db.models.fields.PolygonField(srid=4326)),
],
),
]
此迁移未运行,导致我的0022迁移失败,因为表未放回。我不知道为什么这不运行,或者我是否需要做更多的事情。我试图用一个:
python manage.py迁移swsite 0021_cesumentity
我只知道:
要执行的操作:
特定于目标的迁移:0021_Cesumentity,来自swsite
运行迁移:
没有要应用的迁移
所以我不知道为什么会这样,或者我错过了什么
我以前的迁移有问题,说存在一些东西,这很有意义,我不是在开发,而是在测试服务器上工作,所以我只是假装这些东西,如果有什么问题,我不确定。Django迁移是使用数据库中的“Django_migrations”表跟踪的。这就是Django记录已应用和未应用迁移的方式。如果您签入此表,它将显示已在DB上运行的迁移文件名
如果要重新运行迁移,则需要删除django_migrations表中具有相应文件名的行。然后再次迁移。可能您在假装迁移时犯了错误 python管理.py showmigrations的输出是什么?如果显示应用了0021_cesumentity,则运行python manage.py migrate swsite 0021_cesumentity将没有任何效果
要重新运行该迁移,您必须在0020之前假回迁移,然后重新运行python manage.py migrate swsite 0021_cesumentity。如何假回之前的迁移?我确实做了演示迁移,它在0021_cresumentit上有一个[X]如果迁移有一个[X],那么要么您已经运行了它,要么您伪造了它。给出了一个例子,说明了如何通过先假扮回前一个迁移来重新运行迁移。是的,它工作正常,所以我将此标记为正确的,谢谢您的帮助!