Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // WithGlobalUniqueID sets the universal ids options to the migration. // If this option is enabled, ent migration will allocate a 1<<32 range // for the ids of each entity (table). // Note that this option cannot be applied on tables that already exist. WithGlobalUniqueID = schema.WithGlobalUniqueID // WithDropColumn sets the drop column option to the migration. // If this option is enabled, ent migration will drop old columns // that were used for both fields and edges. This defaults to false. WithDropColumn = schema.WithDropColumn // WithDropIndex sets the drop index option to the migration. // If this option is enabled, ent migration will drop old indexes // that were defined in the schema. This defaults to false. // Note that unique constraints are defined using `UNIQUE INDEX`, // and therefore, it's recommended to enable this option to get more // flexibility in the schema changes. WithDropIndex = schema.WithDropIndex // WithForeignKeys enables creating foreign-key in schema DDL. This defaults to true. WithForeignKeys = schema.WithForeignKeys )
View Source
var ( // AccessesColumns holds the columns for the "accesses" table. AccessesColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, {Name: "user_id", Type: field.TypeInt}, {Name: "project_id", Type: field.TypeInt}, {Name: "role", Type: field.TypeEnum, Enums: []string{"admin", "user"}, Default: "user"}, } // AccessesTable holds the schema information for the "accesses" table. AccessesTable = &schema.Table{ Name: "accesses", Columns: AccessesColumns, PrimaryKey: []*schema.Column{AccessesColumns[0]}, } // HistoriesColumns holds the columns for the "histories" table. HistoriesColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, {Name: "run_id", Type: field.TypeString, Unique: true}, {Name: "success", Type: field.TypeBool}, {Name: "exit_code", Type: field.TypeInt}, {Name: "duration", Type: field.TypeInt}, {Name: "trigger", Type: field.TypeString}, {Name: "output", Type: field.TypeString}, {Name: "triggered_by", Type: field.TypeString}, {Name: "script_id", Type: field.TypeInt}, {Name: "arguments", Type: field.TypeJSON}, {Name: "status", Type: field.TypeString, Default: "running"}, } // HistoriesTable holds the schema information for the "histories" table. HistoriesTable = &schema.Table{ Name: "histories", Columns: HistoriesColumns, PrimaryKey: []*schema.Column{HistoriesColumns[0]}, } // NotificationChannelsColumns holds the columns for the "notification_channels" table. NotificationChannelsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, {Name: "name", Type: field.TypeString, Unique: true}, {Name: "type", Type: field.TypeString}, {Name: "slack_config", Type: field.TypeJSON, Nullable: true}, {Name: "email_config", Type: field.TypeJSON, Nullable: true}, {Name: "webhook_config", Type: field.TypeJSON, Nullable: true}, {Name: "enabled", Type: field.TypeBool, Default: true}, {Name: "last_used", Type: field.TypeTime, Nullable: true}, {Name: "last_used_success", Type: field.TypeBool, Nullable: true}, } // NotificationChannelsTable holds the schema information for the "notification_channels" table. NotificationChannelsTable = &schema.Table{ Name: "notification_channels", Columns: NotificationChannelsColumns, PrimaryKey: []*schema.Column{NotificationChannelsColumns[0]}, } // ProjectsColumns holds the columns for the "projects" table. ProjectsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, {Name: "name", Type: field.TypeString, Unique: true}, {Name: "description", Type: field.TypeString, Nullable: true}, } // ProjectsTable holds the schema information for the "projects" table. ProjectsTable = &schema.Table{ Name: "projects", Columns: ProjectsColumns, PrimaryKey: []*schema.Column{ProjectsColumns[0]}, } // ScriptsColumns holds the columns for the "scripts" table. ScriptsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, {Name: "name", Type: field.TypeString, Unique: true}, {Name: "description", Type: field.TypeString, Nullable: true}, {Name: "script", Type: field.TypeString}, {Name: "timeout_seconds", Type: field.TypeInt, Default: 300}, {Name: "project_id", Type: field.TypeInt}, {Name: "parameters", Type: field.TypeJSON, Nullable: true}, {Name: "schedule_enabled", Type: field.TypeBool, Default: false}, {Name: "schedule_cron", Type: field.TypeString, Nullable: true}, {Name: "success_notification_channel_id", Type: field.TypeInt, Nullable: true}, {Name: "failure_notification_channel_id", Type: field.TypeInt, Nullable: true}, } // ScriptsTable holds the schema information for the "scripts" table. ScriptsTable = &schema.Table{ Name: "scripts", Columns: ScriptsColumns, PrimaryKey: []*schema.Column{ScriptsColumns[0]}, } // ScriptStatsColumns holds the columns for the "script_stats" table. ScriptStatsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "script_id", Type: field.TypeInt}, {Name: "project_id", Type: field.TypeInt}, {Name: "total_runs", Type: field.TypeInt}, {Name: "total_errors", Type: field.TypeInt}, {Name: "total_success", Type: field.TypeInt}, {Name: "average_runtime", Type: field.TypeInt}, {Name: "min_runtime", Type: field.TypeInt}, {Name: "max_runtime", Type: field.TypeInt}, {Name: "last_run", Type: field.TypeTime}, {Name: "total_runtime", Type: field.TypeInt}, {Name: "success_rate", Type: field.TypeInt}, } // ScriptStatsTable holds the schema information for the "script_stats" table. ScriptStatsTable = &schema.Table{ Name: "script_stats", Columns: ScriptStatsColumns, PrimaryKey: []*schema.Column{ScriptStatsColumns[0]}, } // SecretsColumns holds the columns for the "secrets" table. SecretsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, {Name: "name", Type: field.TypeString, Unique: true}, {Name: "value", Type: field.TypeString}, {Name: "project_id", Type: field.TypeInt}, {Name: "created_by", Type: field.TypeString}, } // SecretsTable holds the schema information for the "secrets" table. SecretsTable = &schema.Table{ Name: "secrets", Columns: SecretsColumns, PrimaryKey: []*schema.Column{SecretsColumns[0]}, } // UsersColumns holds the columns for the "users" table. UsersColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, {Name: "email", Type: field.TypeString, Unique: true}, {Name: "hashed_password", Type: field.TypeString}, {Name: "api_key", Type: field.TypeString}, {Name: "role", Type: field.TypeEnum, Enums: []string{"admin", "user"}, Default: "user"}, } // UsersTable holds the schema information for the "users" table. UsersTable = &schema.Table{ Name: "users", Columns: UsersColumns, PrimaryKey: []*schema.Column{UsersColumns[0]}, } // Tables holds all the tables in the schema. Tables = []*schema.Table{ AccessesTable, HistoriesTable, NotificationChannelsTable, ProjectsTable, ScriptsTable, ScriptStatsTable, SecretsTable, UsersTable, } )
Functions ¶
Types ¶
type Schema ¶
type Schema struct {
// contains filtered or unexported fields
}
Schema is the API for creating, migrating and dropping a schema.
Click to show internal directories.
Click to hide internal directories.