From 4a53027bd34c63166698e450cc8cfc5b2fb0467a Mon Sep 17 00:00:00 2001 From: Sigve Sebastian Farstad Date: Tue, 1 Mar 2016 17:07:08 +0100 Subject: [PATCH] Add data migration to uppercase all article slugs We currently assume that all article slugs are uppercase. However, prior to this commit, it was possible to create articles with lowercase slugs using the UI, which means that databases could at the point of this data contain invalid data, i.e. lowercased slugs. This commit introduces a data migration that uppercases all slugs, ensuring that the database is returned to a valid state. --- .../migrations/0003_auto_20160301_1703.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 wikipendium/wiki/migrations/0003_auto_20160301_1703.py diff --git a/wikipendium/wiki/migrations/0003_auto_20160301_1703.py b/wikipendium/wiki/migrations/0003_auto_20160301_1703.py new file mode 100644 index 00000000..fd3ab20c --- /dev/null +++ b/wikipendium/wiki/migrations/0003_auto_20160301_1703.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations + + +def uppercase_all_article_slugs(apps, schema_editor): + Article = apps.get_model("wikipendium__wiki", "Article") + articles = Article.objects.all() + for article in articles: + if article.slug: + article.slug = article.slug.upper() + article.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('wikipendium__wiki', '0002_article_tags'), + ] + + operations = [ + migrations.RunPython(uppercase_all_article_slugs), + ]