Inconsistent schema of `push_rules` table
Problem
Staging database defines a limit for regex
fields. character varying(255)
Table "public.push_rules"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
-------------------------------+-----------------------------+-----------+----------+----------------------------------------+----------+--------------+-------------
id | integer | | not null | nextval('push_rules_id_seq'::regclass) | plain | |
force_push_regex | character varying(255) | | | | extended | |
delete_branch_regex | character varying(255) | | | | extended | |
commit_message_regex | character varying(255) | | | | extended | |
deny_delete_tag | boolean | | | | plain | |
project_id | integer | | | | plain | |
created_at | timestamp without time zone | | | | plain | |
updated_at | timestamp without time zone | | | | plain | |
author_email_regex | character varying(255) | | | | extended | |
member_check | boolean | | not null | false | plain | |
file_name_regex | character varying(255) | | | | extended | |
is_sample | boolean | | | false | plain | |
max_file_size | integer | | not null | 0 | plain | |
prevent_secrets | boolean | | not null | false | plain | |
branch_name_regex | character varying | | | | extended | |
reject_unsigned_commits | boolean | | | | plain | |
commit_committer_check | boolean | | | | plain | |
regexp_uses_re2 | boolean | | | true | plain | |
commit_message_negative_regex | character varying | | | | extended | |
reject_non_dco_commits | boolean | | | | plain | |
commit_committer_name_check | boolean | | not null | false | plain | |
However, in our schema https://gitlab.com/gitlab-org/gitlab/-/blob/f6a0b6bc461d2d3ca885e3ea280abe45487f9ced/db/init_structure.sql#L20650-20670. The same fields don't have a limitation (character varying
):
CREATE TABLE push_rules (
id integer NOT NULL,
force_push_regex character varying,
delete_branch_regex character varying,
commit_message_regex character varying,
deny_delete_tag boolean,
project_id integer,
created_at timestamp without time zone,
updated_at timestamp without time zone,
author_email_regex character varying,
member_check boolean DEFAULT false NOT NULL,
file_name_regex character varying,
is_sample boolean DEFAULT false,
max_file_size integer DEFAULT 0 NOT NULL,
prevent_secrets boolean DEFAULT false NOT NULL,
branch_name_regex character varying,
reject_unsigned_commits boolean,
commit_committer_check boolean,
regexp_uses_re2 boolean DEFAULT true,
commit_message_negative_regex character varying
);