Django - migrations stops -> ObjectInUse: cannot ALTER TABLE "xxx" because it has pending trigger events

50 views
Skip to first unread message

Adam Jurkiewicz

unread,
Jan 30, 2025, 9:47:57 AMJan 30
to Django users
Hi,
I have a project, which works on server for some time, but:

I need to develop it, so I want to run in docker locally. That is easy. But i cannot just copy DB from production, because it contains sensitive informations. OK, I just deleted DB and want to start app. Migrations should work everything... but -> they do not.
I can look at migrations and:

django_app
 [X] 0001_initial
 [X] 0002_auto_20240416_1029
 [X] 0003_auto_20240416_1041
 [X] 0004_auto_20240422_2057
 [X] 0005_auto_20240423_1347
 [X] 0006_auto_20240425_2154
 [ ] 0007_auto_20240602_1132
 [ ] 0008_auto_20240623_1917
 [ ] 0009_auto_20240701_1125

as you can see, onli migrations 1~6 were done.

I can see in logs:
django-1         |   File "/usr/local/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
django-1         |     return self.cursor.execute(sql, params)
django-1         | django.db.utils.OperationalError: cannot ALTER TABLE "xxx" because it has pending trigger events
django-1         |  
django-1         |   Applying django_app.0007_auto_20240602_1132...

If someone want to look on 007 migrasion:
operations = [
migrations.RemoveField(
model_name='submission',
name='author',
),
migrations.RemoveField(
model_name='submission',
name='user_id',
),
migrations.CreateModel(
name='Member',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('user_id', models.CharField(max_length=255, verbose_name='Идентификатор')),
('name', models.CharField(max_length=255, verbose_name='Наименование')),
('email', models.EmailField(blank=True, max_length=254, null=True, verbose_name='Email')),
('platform', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='members', to='core.platform', verbose_name='Платформа')),
],
options={
'verbose_name': 'участник',
'verbose_name_plural': 'участники',
'db_table': 'members',
'unique_together': {('platform', 'user_id')},
},
),
migrations.AddField(
model_name='submission',
name='member',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='submissions', to='core.member', verbose_name='Участник (Автор)'),
),
]

I do not have an idea, what can be responsible for that "pending trigger events" - maybe someone will give me some advise, whre to look for?
Thi repository is complex (about 15 branches) - I thind database was build in time, and maybe in production environemnt works,  and maybedb  designing process was different in time, and all migrations merged by branch merging gives such efect.
If someone will have an idea... I will be greatefull.

Adam
Reply all
Reply to author
Forward
0 new messages