Upgrade to 13.3 and database migration fail
First of all, I had also a issue upgrading to 13.2 (related to #5540 (closed))
I solved this issue with DROP SCHEMA gitlab_partitions_dynamic;
unfortunately I have now a problem with upgrading to 13.3
== 20200716120000 PartitionAuditEvents: migrating =============================
-- transaction_open?()
-> 0.0000s
-- table_exists?("audit_events_part_5fc467ac26")
-> 0.0004s
-- table_exists?("gitlab_partitions_dynamic.audit_events_part_5fc467ac26_000000")
-> 0.0004s
-- execute("CREATE TABLE gitlab_partitions_dynamic.audit_events_part_5fc467ac26_000000 PARTITION OF audit_events_part_5fc467ac26\nFOR VALUES FROM (MINVALUE) TO ('2017-08-01')\n")
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
PG::InvalidSchemaName: ERROR: schema "gitlab_partitions_dynamic" does not exist
LINE 1: CREATE TABLE gitlab_partitions_dynamic.audit_events_part_5fc...
^
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_helpers.rb:92:in `create_range_partition'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:225:in `create_range_partition_safely'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:199:in `create_daterange_partitions'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:59:in `partition_table_by_date'
/opt/gitlab/embedded/service/gitlab-rails/db/migrate/20200716120000_partition_audit_events.rb:13:in `up'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Caused by:
ActiveRecord::StatementInvalid: PG::InvalidSchemaName: ERROR: schema "gitlab_partitions_dynamic" does not exist
LINE 1: CREATE TABLE gitlab_partitions_dynamic.audit_events_part_5fc...
^
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_helpers.rb:92:in `create_range_partition'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:225:in `create_range_partition_safely'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:199:in `create_daterange_partitions'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:59:in `partition_table_by_date'
/opt/gitlab/embedded/service/gitlab-rails/db/migrate/20200716120000_partition_audit_events.rb:13:in `up'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Caused by:
PG::InvalidSchemaName: ERROR: schema "gitlab_partitions_dynamic" does not exist
LINE 1: CREATE TABLE gitlab_partitions_dynamic.audit_events_part_5fc...
^
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_helpers.rb:92:in `create_range_partition'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:225:in `create_range_partition_safely'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:199:in `create_daterange_partitions'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:59:in `partition_table_by_date'
/opt/gitlab/embedded/service/gitlab-rails/db/migrate/20200716120000_partition_audit_events.rb:13:in `up'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
After that I recreated the schema and got following error:
== 20200716120000 PartitionAuditEvents: migrating =============================
-- transaction_open?()
-> 0.0000s
-- table_exists?("audit_events_part_5fc467ac26")
-> 0.0004s
-- table_exists?("gitlab_partitions_dynamic.audit_events_part_5fc467ac26_000000")
-> 0.0004s
-- table_exists?("gitlab_partitions_dynamic.audit_events_part_5fc467ac26_201708")
-> 0.0003s
-- execute("CREATE TABLE gitlab_partitions_dynamic.audit_events_part_5fc467ac26_201708 PARTITION OF audit_events_part_5fc467ac26\nFOR VALUES FROM ('2017-08-01') TO ('2017-09-01')\n")
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
PG::InvalidObjectDefinition: ERROR: partition "audit_events_part_5fc467ac26_201708" would overlap partition "audit_events_part_5fc467ac26_000000"
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_helpers.rb:92:in `create_range_partition'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:225:in `create_range_partition_safely'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:207:in `create_daterange_partitions'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:59:in `partition_table_by_date'
/opt/gitlab/embedded/service/gitlab-rails/db/migrate/20200716120000_partition_audit_events.rb:13:in `up'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Caused by:
ActiveRecord::StatementInvalid: PG::InvalidObjectDefinition: ERROR: partition "audit_events_part_5fc467ac26_201708" would overlap partition "audit_events_part_5fc467ac26_000000"
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_helpers.rb:92:in `create_range_partition'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:225:in `create_range_partition_safely'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:207:in `create_daterange_partitions'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:59:in `partition_table_by_date'
/opt/gitlab/embedded/service/gitlab-rails/db/migrate/20200716120000_partition_audit_events.rb:13:in `up'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Caused by:
PG::InvalidObjectDefinition: ERROR: partition "audit_events_part_5fc467ac26_201708" would overlap partition "audit_events_part_5fc467ac26_000000"
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_helpers.rb:92:in `create_range_partition'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:225:in `create_range_partition_safely'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:207:in `create_daterange_partitions'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb:59:in `partition_table_by_date'
/opt/gitlab/embedded/service/gitlab-rails/db/migrate/20200716120000_partition_audit_events.rb:13:in `up'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
psql (11.7)
Type "help" for help.
gitlabhq_production=# \dt+ gitlab_partitions_dynamic.*
List of relations
Schema | Name | Type | Owner | Size | Description
---------------------------+-------------------------------------+-------+--------+------------+-------------
gitlab_partitions_dynamic | audit_events_part_5fc467ac26_000000 | table | gitlab | 8192 bytes |
gitlab_partitions_dynamic | audit_events_part_5fc467ac26_202008 | table | gitlab | 8192 bytes |
gitlab_partitions_dynamic | audit_events_part_5fc467ac26_202009 | table | gitlab | 8192 bytes |
gitlab_partitions_dynamic | audit_events_part_5fc467ac26_202010 | table | gitlab | 8192 bytes |
gitlab_partitions_dynamic | audit_events_part_5fc467ac26_202011 | table | gitlab | 8192 bytes |
gitlab_partitions_dynamic | audit_events_part_5fc467ac26_202012 | table | gitlab | 8192 bytes |
gitlab_partitions_dynamic | audit_events_part_5fc467ac26_202101 | table | gitlab | 8192 bytes |
gitlab_partitions_dynamic | audit_events_part_5fc467ac26_202102 | table | gitlab | 8192 bytes |
(8 rows)
gitlabhq_production=#
any ideas on that?
Edited by Björn Ternes