Exciting New Features in Django 3.2
Django 3.2 is just around the corner and it’s packed with new features. Django versions are usually not that exciting (it’s a good thing!), but this time many features were added to the ORM, so I find it especially interesting! Check out the full article on hakibenita.com >> Originally published at https://hakibenita.com on March 3, 2021.
The Unexpected Find That Freed 20GB of Unused Index Space
Every few months we get an alert from our database monitoring to warn us that we are about to run out of space. Usually we just provision more storage and forget about it, but this time we were under quarantine, and the system in question was under less load than…
Re-Introducing Hash Indexes in PostgreSQL
If you work with databases you are probably familiar with B-Tree indexes. They are used to enforce unique and primary-key constraints, and are the default index type in most database engines. If you work with text, geography or other complex types in PostgreSQL, you may have dipped your toes into…
Simple Anomaly Detection Using Plain SQL
Many developers think that having a critical bug in their code is the worst thing that can happen. Well, there is something much worse than that: Having a critical bug in your code and not knowing about it! To make sure I get notified about critical bugs as soon as possible, I started looking for ways to find anomalies in my data. I quickly found that information about these subjects tend to get very complicated, and involve a lot of ad-hoc tools and dependencies.
Some SQL Tricks of an Application DBA
When I started my career in development, my first job was a DBA. Back then, before AWS RDS, Azure, Google Cloud and the rest of them cloud services, there were two types of DBAs: The Infrastructure DBA was in charge of setting up the database, configuring the storage and taking…
Stop Using datetime.now!
Practical Dependency Injection in Python — One of my favorite job interview questions is this: Write a function that returns tomorrow’s date This looks innocent enough for someone to suggest this as a solution: This will work, but there is a followup question: How would you test this function? Before you move on…. take a second to think about your answer. Keep reading this article on my personal blog >>>
How to Move a Django Model to Another App
In my latest article for RealPython I share three ways to tackle one of the most challenging tasks involving Django migrations: moving a model from one Django app to another. The article covers some exotic migration operations and many of the built-in migration CLI commands such sqlmigrate, showmigrations and sqlsequencereset. In the article I also demonstrate important migrations concepts such as reversible migrations, migration plans and introspection.
Testing an Interactive Voice Response System With Python and Pytest
Following my previous article on how to build an Interactive Voice Response (IVR) system with Twilio, Python and Django, in this follow-up tutorial I show how to write automated tests for this system. It can be very challenging to test a system that rely heavily on a third party service such as Twilio. In this article, I show how to organize your code in a way that would isolate your bushiness logic and make it easier to test separately. The article demonstrate useful testing patterns using Django’s RequestFactory, unittest.mock, Pytest fixtures, build-in django-pytest and many more.
Using Markdown in Django
Originally published at https://hakibenita.com on February 11, 2020. Read this article on by blog with proper syntax highlighting. As developers, we rely on static analysis tools to check, lint and transform our code. We use these tools to help us be more productive and produce better code. …