Feed: Adam Johnson

Blog Adam Johnson
RSS 2.0 Feed Adam Johnson
web https://adamj.eu/
Last Update04.02.2026
Posts78

How to migrate from Django’s PostgreSQL CI Fields to use a case-insensitive collation

Feb. 23, 2023 » Adam Johnson » [Archived Version]

If you upgrade to Django 4.2, you may see system check warnings like: example.User.email: (fields.W906) django.contrib.postgres.fields.CIEmailField is deprecated. Support for it (except in historical migrations) will be removed in Django 5.1. HINT: Use EmailField(db_collation="…") with a case-insensitive non-deterministic collation instead …

Read More

django-upgrade release with Django 4.2 fixers

Feb. 17, 2023 » Adam Johnson » [Archived Version]

I just released django-upgrade 1.13.0. The headline features are some new fixers targetting Django 4.2, which is currently in alpha. Let’s walk through these new fixers. For more detail on any of them, see the Django 4.2 README section. New headers argument in tests Recent-ish …

Read More

Django Settings Patterns to Avoid

Nov. 24, 2022 » Adam Johnson » [Archived Version]

This post is an adapted extract from my book Boost Your Django DX, available now. Here are some potential mistakes made with Django settings that you can avoid. Don’t Read Settings at Import Time Python doesn’t make a distinction between import time and run time. As such, it …

Read More

Django Settings Patterns to Avoid

Nov. 24, 2022 » Adam Johnson » [Archived Version]

This post is an adapted extract from my book Boost Your Django DX, available now. Here are some potential mistakes made with Django settings that you can avoid. Don’t Read Settings at Import Time Python doesn’t make a distinction between import time and run time. As such, it …

Read More

Django-related Deals for Black Friday and Cyber Monday 2022

Nov. 21, 2022 » Adam Johnson » [Archived Version]

Here are some Django-related deals for this year’s Black Friday (25th Nov) and Cyber Monday (28th Nov), including my own. For more deals on general Python-related products, see Trey Hunner’s post. My books My two books, Boost Your Django DX and Speed Up Your Django Tests, have 50 …

Read More

Django-related Deals for Black Friday and Cyber Monday 2022

Nov. 21, 2022 » Adam Johnson » [Archived Version]

Here are some Django-related deals for this year’s Black Friday (25th Nov) and Cyber Monday (28th Nov), including my own. For more deals on general Python-related products, see Trey Hunner’s post. My books My two books, Boost Your Django DX and Speed Up Your Django Tests, have 50 …

Read More

django-upgrade Mega Release 1.11.0

Oct. 25, 2022 » Adam Johnson » [Archived Version]

I just released version 1.11.0 of django-upgrade, a tool for automatically upgrading your Django project code. This release contains a lot of new features and fixes, thanks to new contributors including those at the Djangocon Europe sprints. Let’s look at the top changes. New admin.site.register …

Read More

django-upgrade Mega Release 1.11.0

Oct. 25, 2022 » Adam Johnson » [Archived Version]

I just released version 1.11.0 of django-upgrade, a tool for automatically upgrading your Django project code. This release contains a lot of new features and fixes, thanks to new contributors including those at the Djangocon Europe sprints. Let’s look at the top changes. New admin.site.register …

Read More

Migrate PostgreSQL ID’s from serial to identity after upgrading to Django 4.1

Oct. 20, 2022 » Adam Johnson » [Archived Version]

The Django 4.1 release notes feature this short, innocent-looking note: On PostgreSQL, AutoField, BigAutoField, and SmallAutoField are now created as identity columns rather than serial columns with sequences. In this post, we’ll expand on what this means, why you might want to update existing columns from serial types …

Read More

Migrate PostgreSQL ID’s from serial to identity after upgrading to Django 4.1

Oct. 20, 2022 » Adam Johnson » [Archived Version]

The Django 4.1 release notes feature this short, innocent-looking note: On PostgreSQL, AutoField, BigAutoField, and SmallAutoField are now created as identity columns rather than serial columns with sequences. In this post, we’ll expand on what this means, why you might want to update existing columns from serial types …

Read More