我的几个 django 迁移之一没有 运行
one of my few django migrations does not run
我有一个 django 迁移:
0020_delete_cesiumentity
删除一个 table...
然后我用我创建的这个迁移重建它(这是试图解决我以前遇到的问题):
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.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 迁移失败,因为 table 没有放回去。我不确定为什么这不会 运行 或者我是否需要做更多的事情。我试图用一个强制它:
python manage.py migrate swsite 0021_cesiumentity
我刚刚明白了:
要执行的操作:
目标特定迁移:0021_cesiumentity,来自 swsite
运行 迁移:
没有要应用的迁移。
所以我不确定为什么会这样或者我错过了什么?
我以前的迁移有问题,说事情存在(这是有道理的,我不是在开发,而是在测试服务器上工作),所以我不确定是否重要,所以我只是伪造了那些。
使用数据库中的 'django_migrations' table 跟踪 Django 迁移。这就是 Django 记录已应用和未应用迁移的方式。如果您签入此 table,它将向您显示数据库中已 运行 的迁移文件名。
如果要重新运行迁移,需要删除django_migrationstable中对应文件名的行。然后再迁移。
也许你在伪造迁移时犯了一个错误。
python manage.py showmigrations
输出什么?如果显示 0021_cesiumentity
已应用,则 运行ning python manage.py migrate swsite 0021_cesiumentity
将无效。
要重新运行那个迁移,你必须伪造回之前的迁移(0020
),然后重新运行 python manage.py migrate swsite 0021_cesiumentity
.
我有一个 django 迁移:
0020_delete_cesiumentity
删除一个 table... 然后我用我创建的这个迁移重建它(这是试图解决我以前遇到的问题):
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.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 迁移失败,因为 table 没有放回去。我不确定为什么这不会 运行 或者我是否需要做更多的事情。我试图用一个强制它:
python manage.py migrate swsite 0021_cesiumentity
我刚刚明白了:
要执行的操作: 目标特定迁移:0021_cesiumentity,来自 swsite 运行 迁移: 没有要应用的迁移。
所以我不确定为什么会这样或者我错过了什么?
我以前的迁移有问题,说事情存在(这是有道理的,我不是在开发,而是在测试服务器上工作),所以我不确定是否重要,所以我只是伪造了那些。
使用数据库中的 'django_migrations' table 跟踪 Django 迁移。这就是 Django 记录已应用和未应用迁移的方式。如果您签入此 table,它将向您显示数据库中已 运行 的迁移文件名。
如果要重新运行迁移,需要删除django_migrationstable中对应文件名的行。然后再迁移。
也许你在伪造迁移时犯了一个错误。
python manage.py showmigrations
输出什么?如果显示 0021_cesiumentity
已应用,则 运行ning python manage.py migrate swsite 0021_cesiumentity
将无效。
要重新运行那个迁移,你必须伪造回之前的迁移(0020
),然后重新运行 python manage.py migrate swsite 0021_cesiumentity
.