﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32435	Bug in JsonField with null=False	Ronaldo Campos	nobody	"I recently updated my project's Django to version 3.1.5 and removed its jsonfield dependency to use the new JSONField released with Django 3.1. However i'm experiencing quite a strange bug.

I was experimenting creating a new JSONField with different options and here is what i found:

Suppose I have a migration like this


{{{

        migrations.AlterField(
            model_name='awsuserschedule',
            name='selected_ids',
            field=common.fields.JSONField(encoder=common.encoders.JSONEncoder, null=True),
        ),
        migrations.AlterField(
            model_name='awsuserschedule',
            name='tags',
            field=common.fields.JSONField(default=list, encoder=common.encoders.JSONEncoder),
        ),
        migrations.AlterField(
            model_name='userscheduleslog',
            name='instance_ids',
            field=common.fields.JSONField(default=list, encoder=common.encoders.JSONEncoder, null=False),
        ),
}}}

When i run sqlmigrate to analyze this migration i get:

{{{
-- Alter field selected_ids on awsuserschedule
--
ALTER TABLE `aws_user_schedules` MODIFY `selected_ids` json NULL;
--
-- Alter field tags on awsuserschedule
--
--
-- Alter field instance_ids on userscheduleslog
--
}}} 

So you see that when '''null is not passed''', or '''null=False''', there is no sql query created at all. I'm using MySQL 5.7.22. Am i doing something wrong?

Thanks"	Bug	closed	Database layer (models, ORM)	3.1	Normal	invalid	jsonfield	Ronaldo Campos	Unreviewed	0	0	0	0	0	0
