Skip to content

Commit

Permalink
Fix reader 0007 migration not working in MySQL
Browse files Browse the repository at this point in the history
The migration was generating this SQL:

    ALTER TABLE `reader_series` MODIFY `id`
    integer AUTO_INCREMENT NOT NULL;
    ALTER TABLE `reader_series` ADD CONSTRAINT
    `reader_series_id_1242ab74_uniq` UNIQUE (`id`);
    ALTER TABLE `reader_series` ADD CONSTRAINT
    `reader_series_id_1242ab74_pk` PRIMARY KEY (`id`);

but MySQL requires auto fields to be declared as primary keys.
  • Loading branch information
ObserverOfTime committed Jul 17, 2019
1 parent bb71e9c commit d24e95d
Showing 1 changed file with 13 additions and 20 deletions.
33 changes: 13 additions & 20 deletions reader/migrations/0007_editable_slugs.py
Expand Up @@ -11,10 +11,6 @@ def __init__(self, name, app_label):
('reader', '0006_remove_chapter_url'),
]
self.operations = [
migrations.AddField(
model_name='series', name='id',
field=models.IntegerField(default=0),
),
migrations.AlterField(
model_name='chapter', name='series',
field=models.CharField(max_length=250, blank=True)
Expand All @@ -27,6 +23,19 @@ def __init__(self, name, app_label):
migrations.RemoveField(model_name='series', name='authors'),
migrations.RemoveField(model_name='series', name='artists'),
migrations.RemoveField(model_name='series', name='categories'),
migrations.AlterField(
model_name='series', name='slug',
field=models.SlugField(
primary_key=False, blank=True,
unique=True, verbose_name='Custom slug',
help_text='The unique slug of the series.'
' Will be used in the URL.'
)
),
migrations.AddField(
model_name='series', name='id',
field=models.AutoField(primary_key=True, serialize=False)
),
migrations.RunPython(self.populate_ids),
migrations.AddField(
model_name='series', name='artists',
Expand All @@ -40,19 +49,6 @@ def __init__(self, name, app_label):
model_name='series', name='categories',
field=models.ManyToManyField(blank=True, to='reader.Category'),
),
migrations.AlterField(
model_name='series', name='id',
field=models.AutoField(primary_key=True, serialize=False),
),
migrations.AlterField(
model_name='series',
name='slug',
field=models.SlugField(
blank=True, unique=True, verbose_name='Custom slug',
help_text='The unique slug of the series.'
' Will be used in the URL.'
)
),
migrations.RunPython(self.populate_m2m_fields),
migrations.AlterField(
model_name='chapter', name='series',
Expand Down Expand Up @@ -85,10 +81,7 @@ def populate_ids(self, apps, schema_editor):
series = apps.get_model('reader', 'Series')
chapter = apps.get_model('reader', 'Chapter')
alias = apps.get_model('reader', 'SeriesAlias')
pk = 1
for s in series.objects.all():
s.id = pk
pk += 1
s.save()
for c in chapter.objects.filter(series=s.slug):
c.series = s.id
Expand Down

0 comments on commit d24e95d

Please sign in to comment.