internal/praefect/datastore/migrations/20210727085659_repository_ids.go (28 lines of code) (raw):

package migrations import migrate "github.com/rubenv/sql-migrate" func init() { m := &migrate.Migration{ Id: "20210727085659_repository_ids", Up: []string{ "CREATE UNIQUE INDEX repository_lookup_index ON repositories (virtual_storage, relative_path)", "ALTER TABLE repository_assignments DROP CONSTRAINT IF EXISTS repository_assignments_virtual_storage_relative_path_fkey", "ALTER TABLE repository_assignments DROP CONSTRAINT IF EXISTS repository_assignments_virtual_storage_fkey", "ALTER TABLE repositories DROP CONSTRAINT repositories_pkey", "ALTER TABLE repository_assignments ADD CONSTRAINT repository_assignments_virtual_storage_relative_path_fkey FOREIGN KEY (virtual_storage, relative_path) REFERENCES repositories (virtual_storage, relative_path) ON UPDATE CASCADE ON DELETE CASCADE", "ALTER TABLE repositories ADD COLUMN repository_id BIGSERIAL PRIMARY KEY", "ALTER TABLE repository_assignments ADD COLUMN repository_id BIGINT REFERENCES repositories (repository_id) ON DELETE CASCADE", "ALTER TABLE storage_repositories ADD COLUMN repository_id BIGINT REFERENCES repositories (repository_id) ON DELETE SET NULL", }, Down: []string{ "ALTER TABLE storage_repositories DROP COLUMN repository_id", "ALTER TABLE repository_assignments DROP COLUMN repository_id", "ALTER TABLE repositories DROP COLUMN repository_id", "CREATE UNIQUE INDEX repositories_pkey ON repositories (virtual_storage, relative_path)", "ALTER TABLE repositories ADD PRIMARY KEY USING INDEX repositories_pkey", "ALTER TABLE repository_assignments DROP CONSTRAINT repository_assignments_virtual_storage_relative_path_fkey", "DROP INDEX repository_lookup_index", "ALTER TABLE repository_assignments ADD FOREIGN KEY (virtual_storage, relative_path) REFERENCES repositories (virtual_storage, relative_path) ON UPDATE CASCADE ON DELETE CASCADE", }, } allMigrations = append(allMigrations, m) }