2017-08-02 89 views
0

为什么当我试图转移我的模型,每部分型号,我补充说,尽管一些错误,如:迁移Django的1.11

我不想删除并创建另一个数据库。我只想改变现有的数据库,如果我的数据库中有一些数据?

(1060, "Duplicate column name ...) 
(1054, "Unknown column 'vacina_agentmodel.phone' in 'field list'") 
(1054, "Unknown column 'created' in 'vacina_vaccinemodel'") 

初始迁移

dependencies = [ 
    ('vacina', '0001_initial'), 
] 

operations = [ 
    migrations.CreateModel(
     name='PatientModel', 
     fields=[ 
      ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), 
      ('complete_name', models.CharField(max_length=100, verbose_name='Nome completo')), 
      ('birthday', models.DateField(verbose_name='Data de nascimento')), 
      ('email', models.EmailField(default='', max_length=200, verbose_name='Email')), 
      ('phone', models.IntegerField(blank=True, verbose_name='Número de telefone')), 
      ('address', models.CharField(default='', max_length=200, verbose_name='Endereço')), 
      ('house_number', models.CharField(blank=True, max_length=10, verbose_name='Número da casa/apartamento')), 
      ('country', models.CharField(default='', max_length=100, verbose_name='Pais')), 
      ('province', models.CharField(default='', max_length=100, verbose_name='Estado')), 
      ('zip_code', models.IntegerField(verbose_name='CEP')), 
      ('created_at', models.DateTimeField(auto_now_add=True)), 
      ('last_modification', models.DateTimeField(auto_now=True)), 
     ], 
     options={ 
      'ordering': ('created_at',), 
     }, 
    ), 
] 

///////////////////////

dependencies = [ 
    ('vacina', '0008_auto_20170802_0507'), 
] 

operations = [ 
    migrations.AlterModelOptions(
     name='agentmodel', 
     options={'ordering': ('created_at',)}, 
    ), 
    migrations.AddField(
     model_name='agentmodel', 
     name='country', 
     field=models.CharField(default='', max_length=100, verbose_name='Pais'), 
    ), 
    migrations.AddField(
     model_name='agentmodel', 
     name='created_at', 
     field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now), 
     preserve_default=False, 
    ), 
    migrations.AddField(
     model_name='agentmodel', 
     name='house_number', 
     field=models.CharField(blank=True, max_length=10, verbose_name='Número da casa/apartamento'), 
    ), 
    migrations.AddField(
     model_name='agentmodel', 
     name='last_modification', 
     field=models.DateTimeField(auto_now=True), 
    ), 
    migrations.AddField(
     model_name='agentmodel', 
     name='phone', 
     field=models.IntegerField(blank=True, default=django.utils.timezone.now, verbose_name='Número de telefone'), 
     preserve_default=False, 
    ), 
    migrations.AddField(
     model_name='agentmodel', 
     name='province', 
     field=models.CharField(default='', max_length=100, verbose_name='Estado'), 
    ), 
    migrations.AddField(
     model_name='agentmodel', 
     name='zip_code', 
     field=models.IntegerField(default=django.utils.timezone.now, verbose_name='CEP'), 
     preserve_default=False, 
    ), 
    migrations.AlterField(
     model_name='agentmodel', 
     name='email', 
     field=models.EmailField(default='', max_length=200, verbose_name='Email'), 
    ), 
] 
+0

有什么变化处理你的' models.py'和你正在使用哪个数据库? – Gahan

+0

你可以分享你的models.py文件 – viveksyngh

+0

我会评论我的模特,py请在 –

回答

1

嘿在你的应用程序文件夹中会有一个名为migrations的文件夹,尝试以001_initial.py格式删除所有文件,然后从命令提示符下运行makemigrations命令,这允许您在不删除整个数据库的情况下编辑模型。

编辑:嘿,请点击此链接:Currently using Django "Evolution", is "South" better and worth switching?尝试使用南也许这就是回答您的问题一次数据库已设置

+0

以下,但这是临时解决方案,如果模型将被再次修改它将再次产生相同的错误 – Gahan

+0

是的,文档说这不是一个好习惯,因为我们需要这些迁移来做一些回滚或类似的事情...... –

0

我的models.py

class PatientModel(models.Model): 
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 
complete_name = models.CharField(_('Nome completo'), max_length=100, blank=False) 
birthday = models.DateField(_('Data de nascimento'), blank=False, null=False) 
email = models.EmailField(_('Email'), max_length=200, blank=False, default='') 
phone = models.IntegerField(_('Número de telefone'), blank=True) 
address = models.CharField(_('Endereço'), max_length=200, blank=False, default='') 
house_number = models.CharField(_('Número da casa/apartamento'), max_length=10, blank=True) 
country = models.CharField(_('Pais'), max_length=100, blank=False, default='') 
province = models.CharField(_('Estado'), max_length=100, blank=False, default='') 
zip_code = models.IntegerField(_('CEP'), blank=False) 
created_at = models.DateTimeField(auto_now_add=True, auto_now=False) 
last_modification = models.DateTimeField(auto_now_add=False, auto_now=True) 

class Meta: 
    ordering = ('created_at',) 

def __meta__(self): 
    return self.complete_name 


class AgentModel(models.Model): 
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 
complete_name = models.CharField(_('Nome completo'), max_length=100, blank=False) 
birthday = models.DateField(_('Data de nascimento'), blank=False, null=False) 
email = models.EmailField(_('Email'), max_length=200, blank=False, default='') 
phone = models.IntegerField(_('Número de telefone'), blank=True) 
address = models.CharField(_('Endereço'), max_length=200, blank=False, default='') 
house_number = models.CharField(_('Número da casa/apartamento'), max_length=10, blank=True) 
country = models.CharField(_('Pais'), max_length=100, blank=False, default='') 
province = models.CharField(_('Estado'), max_length=100, blank=False, default='') 
zip_code = models.IntegerField(_('CEP'), blank=False) 
created_at = models.DateTimeField(auto_now_add=True, auto_now=False) 
last_modification = models.DateTimeField(auto_now_add=False, auto_now=True) 

class Meta: 
    ordering = ('created_at',) 

def __meta__(self): 
    return self.complete_name 


class VaccineModel(models.Model): 
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 
vaccine_name = models.CharField(_('Nome da vacina'), max_length=255, blank=False) 
against_indicative = models.TextField(_('Contra indicativo'), max_length=500, blank=True) 
avoided_diseases = models.TextField(_('Doenças evitadas'), max_length=200, blank=False) 
age = models.CharField(_('Idade'), max_length=255, blank=False) 
comments = models.TextField(_('Comentário adicional'), max_length=200, blank=True) 
created_at = models.DateTimeField(auto_now_add=True, auto_now=False) 
last_modification = models.DateTimeField(auto_now_add=False, auto_now=True) 

class Meta: 
    ordering = ('vaccine_name',) 

def __str__(self): 
    return self.vaccine_name