Skip to content

Add project access token table

What does this MR do?

This MR it is related #15666 (closed) and the table will hold the relationship between Personal Access Token and Projects. So we are able to restrict a personal_access_token to multiple projects.

The WIP backend !33286 (closed)

Migration output:

$ rails db:migrate
== 20200430123614 CreateProjectAccessTokens: migrating ========================
-- create_table(:project_access_tokens, {:primary_key=>[:personal_access_token_id, :project_id]})
   -> 0.0034s
-- add_index(:project_access_tokens, :personal_access_token_id)
   -> 0.0019s
-- add_index(:project_access_tokens, :project_id)
   -> 0.0016s
== 20200430123614 CreateProjectAccessTokens: migrated (0.0070s) ===============

== 20200615121217 AddProjectsForeignKeyToProjectAccessTokens: migrating =======
-- transaction_open?()
   -> 0.0000s
-- foreign_keys(:project_access_tokens)
   -> 0.0026s
-- execute("ALTER TABLE project_access_tokens\nADD CONSTRAINT fk_b27801bfbf\nFOREIGN KEY (project_id)\nREFERENCES projects (id)\nON DELETE C
ASCADE\nNOT VALID;\n")                                                                                                                     
   -> 0.0027s
-- execute("ALTER TABLE project_access_tokens VALIDATE CONSTRAINT fk_b27801bfbf;")
   -> 0.0034s
== 20200615121217 AddProjectsForeignKeyToProjectAccessTokens: migrated (0.0130s) 

== 20200615123055 AddPersonalAccessTokenForeignKeyToProjectAccessTokens: migrating 
-- transaction_open?()
   -> 0.0000s
-- foreign_keys(:project_access_tokens)
   -> 0.0022s
-- execute("ALTER TABLE project_access_tokens\nADD CONSTRAINT fk_5f7e8450e1\nFOREIGN KEY (personal_access_token_id)\nREFERENCES personal_acc
ess_tokens (id)\nON DELETE CASCADE\nNOT VALID;\n")                                                                                         
   -> 0.0006s
-- execute("ALTER TABLE project_access_tokens VALIDATE CONSTRAINT fk_5f7e8450e1;")
   -> 0.0042s
== 20200615123055 AddPersonalAccessTokenForeignKeyToProjectAccessTokens: migrated (0.0086s) 

$ rails db:rollback STEP=3
== 20200615123055 AddPersonalAccessTokenForeignKeyToProjectAccessTokens: reverting 
-- foreign_keys(:project_access_tokens)
   -> 0.0029s
-- remove_foreign_key(:project_access_tokens, {:column=>:personal_access_token_id})
   -> 0.0029s
== 20200615123055 AddPersonalAccessTokenForeignKeyToProjectAccessTokens: reverted (0.0058s) 

== 20200615121217 AddProjectsForeignKeyToProjectAccessTokens: reverting =======
-- foreign_keys(:project_access_tokens)
   -> 0.0019s
-- remove_foreign_key(:project_access_tokens, {:column=>:project_id})
   -> 0.0031s
== 20200615121217 AddProjectsForeignKeyToProjectAccessTokens: reverted (0.0051s)  (0.0032s) 

== 20200430123614 CreateProjectAccessTokens: reverting ========================
-- remove_index(:project_access_tokens, {:column=>:project_id})
   -> 0.0035s
-- remove_index(:project_access_tokens, {:column=>:personal_access_token_id})
   -> 0.0011s
-- drop_table(:project_access_tokens, {:primary_key=>[:personal_access_token_id, :project_id]})
   -> 0.0004s
== 20200430123614 CreateProjectAccessTokens: reverted (0.0063s) ===============

Conformity

Edited by Sebastián Arcila Valenzuela

Merge request reports