Add database structure for add-ons
What does this MR do and why?
Part of https://gitlab.com/gitlab-org/gitlab/-/issues/408494+
This change adds the models and their database tables for add-ons.
Database migrations
Up migrations
main: == [advisory_lock_connection] object_id: 227960, pg_backend_pid: 29328
main: == 20230531135001 CreateSubscriptionAddOnPurchases: migrating =================
main: -- create_table(:subscription_add_on_purchases, {:if_not_exists=>true})
main: -- quote_column_name(:purchase_xid)
main: -> 0.0000s
main: -> 0.0064s
main: == 20230531135001 CreateSubscriptionAddOnPurchases: migrated (0.0983s) ========
main: == 20230531142032 AddForeignKeySubscriptionAddOnIdOnSubscriptionAddOnPurchases: migrating
main: -- transaction_open?()
main: -> 0.0000s
main: -- transaction_open?()
main: -> 0.0000s
main: -- execute("ALTER TABLE subscription_add_on_purchases ADD CONSTRAINT fk_410004d68b FOREIGN KEY (subscription_add_on_id) REFERENCES subscription_add_ons (id) ON DELETE CASCADE NOT VALID;")
main: -> 0.0015s
main: -- execute("SET statement_timeout TO 0")
main: -> 0.0002s
main: -- execute("ALTER TABLE subscription_add_on_purchases VALIDATE CONSTRAINT fk_410004d68b;")
main: -> 0.0015s
main: -- execute("RESET statement_timeout")
main: -> 0.0007s
main: == 20230531142032 AddForeignKeySubscriptionAddOnIdOnSubscriptionAddOnPurchases: migrated (0.0380s)
main: == 20230531142053 AddForeignKeyNamespaceIdOnSubscriptionAddOnPurchases: migrating
main: -- transaction_open?()
main: -> 0.0000s
main: -- transaction_open?()
main: -> 0.0000s
main: -- execute("ALTER TABLE subscription_add_on_purchases ADD CONSTRAINT fk_a1db288990 FOREIGN KEY (namespace_id) REFERENCES namespaces (id) ON DELETE CASCADE NOT VALID;")
main: -> 0.0012s
main: -- execute("ALTER TABLE subscription_add_on_purchases VALIDATE CONSTRAINT fk_a1db288990;")
main: -> 0.0036s
main: == 20230531142053 AddForeignKeyNamespaceIdOnSubscriptionAddOnPurchases: migrated (0.0213s)
main: == [advisory_lock_connection] object_id: 227960, pg_backend_pid: 29328
ci: == [advisory_lock_connection] object_id: 228480, pg_backend_pid: 29339
ci: == 20230531135001 CreateSubscriptionAddOnPurchases: migrating =================
ci: -- create_table(:subscription_add_on_purchases, {:if_not_exists=>true})
ci: -- quote_column_name(:purchase_xid)
ci: -> 0.0001s
ci: -> 0.0086s
I, [2023-06-07T11:09:14.903688 #28830] INFO -- : Database: 'ci', Table: 'subscription_add_on_purchases': Lock Writes
ci: == 20230531135001 CreateSubscriptionAddOnPurchases: migrated (0.0194s) ========
ci: == 20230531142032 AddForeignKeySubscriptionAddOnIdOnSubscriptionAddOnPurchases: migrating
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- execute("ALTER TABLE subscription_add_on_purchases ADD CONSTRAINT fk_410004d68b FOREIGN KEY (subscription_add_on_id) REFERENCES subscription_add_ons (id) ON DELETE CASCADE NOT VALID;")
ci: -> 0.0013s
ci: -- execute("SET statement_timeout TO 0")
ci: -> 0.0002s
ci: -- execute("ALTER TABLE subscription_add_on_purchases VALIDATE CONSTRAINT fk_410004d68b;")
ci: -> 0.0014s
ci: -- execute("RESET statement_timeout")
ci: -> 0.0002s
ci: == 20230531142032 AddForeignKeySubscriptionAddOnIdOnSubscriptionAddOnPurchases: migrated (0.0254s)
ci: == 20230531142053 AddForeignKeyNamespaceIdOnSubscriptionAddOnPurchases: migrating
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- execute("ALTER TABLE subscription_add_on_purchases ADD CONSTRAINT fk_a1db288990 FOREIGN KEY (namespace_id) REFERENCES namespaces (id) ON DELETE CASCADE NOT VALID;")
ci: -> 0.0013s
ci: -- execute("ALTER TABLE subscription_add_on_purchases VALIDATE CONSTRAINT fk_a1db288990;")
ci: -> 0.0023s
ci: == 20230531142053 AddForeignKeyNamespaceIdOnSubscriptionAddOnPurchases: migrated (0.0217s)
ci: == [advisory_lock_connection] object_id: 228480, pg_backend_pid: 29339
Down migrations
ci: == [advisory_lock_connection] object_id: 227720, pg_backend_pid: 30109
ci: == 20230531142053 AddForeignKeyNamespaceIdOnSubscriptionAddOnPurchases: reverting
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- remove_foreign_key(:subscription_add_on_purchases, {:column=>:namespace_id})
ci: -> 0.0042s
ci: == 20230531142053 AddForeignKeyNamespaceIdOnSubscriptionAddOnPurchases: reverted (0.0387s)
ci: == 20230531142032 AddForeignKeySubscriptionAddOnIdOnSubscriptionAddOnPurchases: reverting
ci: -- transaction_open?()
ci: -> 0.0000s
ci: -- remove_foreign_key(:subscription_add_on_purchases, {:column=>:subscription_add_on_id})
ci: -> 0.0030s
ci: == 20230531142032 AddForeignKeySubscriptionAddOnIdOnSubscriptionAddOnPurchases: reverted (0.0167s)
ci: == 20230531135001 CreateSubscriptionAddOnPurchases: reverting =================
ci: -- drop_table(:subscription_add_on_purchases, {:if_not_exists=>true})
ci: -> 0.0013s
ci: == 20230531135001 CreateSubscriptionAddOnPurchases: reverted (0.0128s) ========
ci: == [advisory_lock_connection] object_id: 227720, pg_backend_pid: 30109
main: == [advisory_lock_connection] object_id: 227720, pg_backend_pid: 30527
main: == 20230531142053 AddForeignKeyNamespaceIdOnSubscriptionAddOnPurchases: reverting
main: -- transaction_open?()
main: -> 0.0000s
main: -- remove_foreign_key(:subscription_add_on_purchases, {:column=>:namespace_id})
main: -> 0.0041s
main: == 20230531142053 AddForeignKeyNamespaceIdOnSubscriptionAddOnPurchases: reverted (0.0271s)
main: == 20230531142032 AddForeignKeySubscriptionAddOnIdOnSubscriptionAddOnPurchases: reverting
main: -- transaction_open?()
main: -> 0.0000s
main: -- remove_foreign_key(:subscription_add_on_purchases, {:column=>:subscription_add_on_id})
main: -> 0.0027s
main: == 20230531142032 AddForeignKeySubscriptionAddOnIdOnSubscriptionAddOnPurchases: reverted (0.0081s)
main: == 20230531135001 CreateSubscriptionAddOnPurchases: reverting =================
main: -- drop_table(:subscription_add_on_purchases, {:if_not_exists=>true})
main: -> 0.0012s
main: == 20230531135001 CreateSubscriptionAddOnPurchases: reverted (0.0062s) ========
main: == [advisory_lock_connection] object_id: 227720, pg_backend_pid: 30527
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Corinna Gogolok