Skip to content

Commit e6b0f2d

Browse files
committed
Update several auto-created id fields/sequences to be BIGINT.
fixes #2080. (cherry picked from commit 76528ef)
1 parent a5228ba commit e6b0f2d

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

CHANGES/2080.bugfix

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Altered several id-fields and their related sequences.
2+
3+
INTEGER AutoField sequences can "run out" on large/old instances, update to BIGINT.

pulp_container/app/__init__.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,21 @@
11
from pulpcore.plugin import PulpPluginAppConfig
2+
from django.db import connection
3+
from django.db.models.signals import post_migrate
4+
5+
update_sequences_to_bigint = """
6+
ALTER TABLE container_blobmanifest ALTER COLUMN id TYPE bigint;
7+
ALTER TABLE container_manifestlistmanifest ALTER COLUMN id TYPE bigint;
8+
ALTER TABLE container_containerpushrepository_pending_blobs ALTER COLUMN id TYPE bigint;
9+
ALTER TABLE container_containerpushrepository_pending_manifests ALTER COLUMN id TYPE bigint;
10+
ALTER TABLE container_containerrepository_pending_manifests ALTER COLUMN id TYPE bigint;
11+
ALTER TABLE container_containerrepository_pending_blobs ALTER COLUMN id TYPE bigint;
12+
ALTER SEQUENCE container_blobmanifest_id_seq AS BIGINT;
13+
ALTER SEQUENCE container_manifestlistmanifest_id_seq AS BIGINT;
14+
ALTER SEQUENCE container_containerpushrepository_pending_blobs_id_seq AS BIGINT;
15+
ALTER SEQUENCE container_containerpushrepository_pending_manifests_id_seq AS BIGINT;
16+
ALTER SEQUENCE container_containerrepository_pending_blobs_id_seq AS BIGINT;
17+
ALTER SEQUENCE container_containerrepository_pending_manifests_id_seq AS BIGINT;
18+
"""
219

320

421
class PulpContainerPluginAppConfig(PulpPluginAppConfig):
@@ -9,5 +26,12 @@ class PulpContainerPluginAppConfig(PulpPluginAppConfig):
926
version = "2.20.7.dev"
1027
python_package_name = "pulp-container"
1128

29+
@staticmethod
30+
def update_sequences(sender, **kwargs):
31+
"""Update database sequences to bigint type after migrations."""
32+
with connection.cursor() as cursor:
33+
cursor.execute(update_sequences_to_bigint)
34+
1235
def ready(self):
1336
super().ready()
37+
post_migrate.connect(PulpContainerPluginAppConfig.update_sequences, sender=self)

0 commit comments

Comments
 (0)