Skip to content
Snippets Groups Projects
Commit fa4e96c6 authored by Alena Petraki's avatar Alena Petraki :nail_care_tone1: Committed by Pavel Antonov
Browse files

Исправлена ошибка “failed to run space migrations: namespace xxx.migrations...

Исправлена ошибка “failed to run space migrations: namespace xxx.migrations already exists” при доступе к окружениям пространства
parent 41356904
No related branches found
No related tags found
No related merge requests found
package spaces
import (
"git.perx.ru/perxis/perxis-go/pkg/errors"
"git.perx.ru/perxis/perxis-go/pkg/service"
)
var (
ErrNotFound = service.ErrNotFound
ErrStateConflict = errors.New("state conflicts with current space state")
ErrOrgIDRequired = errors.New("organization id required")
)
...@@ -10,9 +10,17 @@ const ( ...@@ -10,9 +10,17 @@ const (
StateReady // Пространство готово к использованию StateReady // Пространство готово к использованию
StatePreparing // Пространство готовится в использованию StatePreparing // Пространство готовится в использованию
StateMaintenance // Пространство находится на обслуживании StateMaintenance // Пространство находится на обслуживании
StateMigration // Пространство в состоянии выполнения миграций
StateDeleting // Пространство удаляется, данные будут удалены // StateMigrationScheduled Для пространства запланирована миграция
StateError // Произошла ошибка при конфигурации пространства (см. Space.Error) // При планировании запуска миграции пространства это состояние выступает в роли Lock'а, который не
// позволяет запустить несколько миграций одновременно. Логика планировщика миграций сначала пытается
// установить для пространства состояние StateMigrationScheduled, что удается только в двух случаях:
// пространство находится в состоянии StateReady или же в состояниях StateMigration, StateMigrationScheduled,
// но последнее обновление состояния было более 15-ти минут назад
StateMigrationScheduled
StateMigration // Пространство в состоянии выполнения миграций
StateDeleting // Пространство удаляется, данные будут удалены
StateError // Произошла ошибка при конфигурации пространства (см. Space.Error)
) )
func (s State) String() string { func (s State) String() string {
...@@ -25,6 +33,8 @@ func (s State) String() string { ...@@ -25,6 +33,8 @@ func (s State) String() string {
return "Preparing" return "Preparing"
case StateMaintenance: case StateMaintenance:
return "Maintenance" return "Maintenance"
case StateMigrationScheduled:
return "MigrationScheduled"
case StateMigration: case StateMigration:
return "Migration" return "Migration"
case StateDeleting: case StateDeleting:
...@@ -55,10 +65,10 @@ type Space struct { ...@@ -55,10 +65,10 @@ type Space struct {
} }
type StateInfo struct { type StateInfo struct {
State State `json:"state" bson:"state"` State State `json:"state" bson:"state,omitempty"`
Info string `json:"info" bson:"info"` Info string `json:"info" bson:"info,omitempty"`
Time time.Time `json:"time,omitempty" bson:"time,omitempty"` Time time.Time `json:"time,omitempty" bson:"time,omitempty"`
DBVersion uint32 `json:"db_version" bson:"db_version"` DBVersion uint32 `json:"db_version" bson:"db_version,omitempty"`
} }
func (s Space) Clone() *Space { func (s Space) Clone() *Space {
......
...@@ -21,4 +21,5 @@ type Filter struct { ...@@ -21,4 +21,5 @@ type Filter struct {
Name []string `json:"name,omitempty" bson:"name"` Name []string `json:"name,omitempty" bson:"name"`
State []State `json:"state,omitempty" bson:"state"` State []State `json:"state,omitempty" bson:"state"`
TransferToOrg []string `json:"transfer_to_org" bson:"transfer_to_org"` TransferToOrg []string `json:"transfer_to_org" bson:"transfer_to_org"`
Q []string `json:"q" bson:"q"`
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment