#27871: Django keeps making the same migration over and over again
-------------------------------+--------------------------------------
     Reporter:  Kyle Agronick  |                    Owner:  nobody
         Type:  Bug            |                   Status:  new
    Component:  Migrations     |                  Version:  1.10
     Severity:  Normal         |               Resolution:
     Keywords:                 |             Triage Stage:  Unreviewed
    Has patch:  0              |      Needs documentation:  0
  Needs tests:  0              |  Patch needs improvement:  0
Easy pickings:  0              |                    UI/UX:  0
-------------------------------+--------------------------------------

Old description:

> Here are all the models:
>
> {{{
>
> from django.contrib.auth.models import User
> from django.db import models
>
> job_state = (('P', 'Pending'), ('A', 'Active'), ('C', 'Completed'), ('F',
> 'Failed'))
> app_type = (('R', 'RX'), ('W', 'WAR'))
> server_types = #taken out
>

> class JobGroup(models.Model):
>     job_type = models.CharField(max_length=100, db_index=True)
>     created_by = models.ForeignKey(User)
>     queued_date = models.DateTimeField(null=True, db_index=True)
>     created_date = models.DateTimeField(auto_now_add=True, db_index=True)
>

> class JobParameter(models.Model):
>     job_group = models.ForeignKey(JobGroup, related_name='job_param',
> on_delete=models.CASCADE)
>     name = models.CharField(max_length=100, db_index=True)
>     value = models.TextField()
>
>     def split_values(self):
>         if ',' in self.value and isinstance(self.value, str):
>             return self.value.split(', ')
>         else:
>             return [self.value]
>
>     class Meta:
>         unique_together = ('job_group', 'name')
>

> class Job(models.Model):
>     job_group = models.ForeignKey(JobGroup, related_name='jobs',
> on_delete=models.CASCADE)
>     state = models.CharField(max_length=1, choices=job_state,
> default='P', db_index=True)
>     start_date = models.DateTimeField(null=True, db_index=True)
>     end_date = models.DateTimeField(null=True)
>     store = models.CharField(max_length=40, db_index=True)
>     payload = models.TextField()
>
>     def get_full_state(self):
>         return self.get_state_display() if self.state in dict(job_state)
> else 'Unknown'
>
>     class Meta:
>         permissions = (
>             ('deployment_job', 'Access Deployment job'),
>             ('services_job', 'Access System Services job'),
>             ('offline_status_job', 'Access Offline Status job'),
>         )
>

> class JobLog(models.Model):
>     job = models.ForeignKey(Job, related_name='logs',
> on_delete=models.CASCADE)
>     command = models.TextField()
>     command_output = models.TextField()
>     result = models.BooleanField(default=False)
>

> class Service(models.Model):
>     service_name = models.CharField(max_length=40)
>     human_readable_name = models.CharField(max_length=40)
>     server_type = models.CharField(choices=server_types, max_length=5)
>
>     def __str__(self):
>         return self.human_readable_name
>
>     class Meta:
>         ordering = ['human_readable_name']
>         unique_together = ['service_name', 'server_type']
> }}}

New description:



--

Comment (by Kyle Agronick):

 Here are all the models:

 {{{

 from django.contrib.auth.models import User
 from django.db import models

 job_state = (('P', 'Pending'), ('A', 'Active'), ('C', 'Completed'), ('F',
 'Failed'))
 app_type = (('R', 'RX'), ('W', 'WAR'))
 server_types = #taken out


 class JobGroup(models.Model):
     job_type = models.CharField(max_length=100, db_index=True)
     created_by = models.ForeignKey(User)
     queued_date = models.DateTimeField(null=True, db_index=True)
     created_date = models.DateTimeField(auto_now_add=True, db_index=True)


 class JobParameter(models.Model):
     job_group = models.ForeignKey(JobGroup, related_name='job_param',
 on_delete=models.CASCADE)
     name = models.CharField(max_length=100, db_index=True)
     value = models.TextField()

     def split_values(self):
         if ',' in self.value and isinstance(self.value, str):
             return self.value.split(', ')
         else:
             return [self.value]

     class Meta:
         unique_together = ('job_group', 'name')


 class Job(models.Model):
     job_group = models.ForeignKey(JobGroup, related_name='jobs',
 on_delete=models.CASCADE)
     state = models.CharField(max_length=1, choices=job_state, default='P',
 db_index=True)
     start_date = models.DateTimeField(null=True, db_index=True)
     end_date = models.DateTimeField(null=True)
     store = models.CharField(max_length=40, db_index=True)
     payload = models.TextField()

     def get_full_state(self):
         return self.get_state_display() if self.state in dict(job_state)
 else 'Unknown'

     class Meta:
         permissions = (
             ('deployment_job', 'Access Deployment job'),
             ('services_job', 'Access System Services job'),
             ('offline_status_job', 'Access Offline Status job'),
         )


 class JobLog(models.Model):
     job = models.ForeignKey(Job, related_name='logs',
 on_delete=models.CASCADE)
     command = models.TextField()
     command_output = models.TextField()
     result = models.BooleanField(default=False)


 class Service(models.Model):
     service_name = models.CharField(max_length=40)
     human_readable_name = models.CharField(max_length=40)
     server_type = models.CharField(choices=server_types, max_length=5)

     def __str__(self):
         return self.human_readable_name

     class Meta:
         ordering = ['human_readable_name']
         unique_together = ['service_name', 'server_type']
 }}}

--
Ticket URL: <https://code.djangoproject.com/ticket/27871#comment:6>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/066.b3a1c9ab9df8ba957ce02a7e68b43c36%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to