mirror of https://github.com/grafana/grafana
LibraryElements: Creates usage stats for panels and variables (#34476)
* LibraryPanels: Adds usage collection * Refactor: renames Panel and Variable consts * Chore: initialize stats * Refactor: moves library element migrations to migration namespacengalerting-docs
parent
abe5c06d69
commit
7204a64717
@ -0,0 +1,13 @@ |
||||
package models |
||||
|
||||
// LibraryElementKind is used for the kind of library element
|
||||
type LibraryElementKind int |
||||
|
||||
const ( |
||||
// PanelElement is used for library elements that are of the Panel kind
|
||||
PanelElement LibraryElementKind = iota + 1 |
||||
// VariableElement is used for library elements that are of the Variable kind
|
||||
VariableElement |
||||
) |
||||
|
||||
const LibraryElementConnectionTableName = "library_element_connection" |
@ -0,0 +1,53 @@ |
||||
package migrations |
||||
|
||||
import ( |
||||
"github.com/grafana/grafana/pkg/models" |
||||
"github.com/grafana/grafana/pkg/services/sqlstore/migrator" |
||||
) |
||||
|
||||
// addLibraryElementsMigrations defines database migrations for library elements.
|
||||
func addLibraryElementsMigrations(mg *migrator.Migrator) { |
||||
libraryElementsV1 := migrator.Table{ |
||||
Name: "library_element", |
||||
Columns: []*migrator.Column{ |
||||
{Name: "id", Type: migrator.DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true}, |
||||
{Name: "org_id", Type: migrator.DB_BigInt, Nullable: false}, |
||||
{Name: "folder_id", Type: migrator.DB_BigInt, Nullable: false}, |
||||
{Name: "uid", Type: migrator.DB_NVarchar, Length: 40, Nullable: false}, |
||||
{Name: "name", Type: migrator.DB_NVarchar, Length: 150, Nullable: false}, |
||||
{Name: "kind", Type: migrator.DB_BigInt, Nullable: false}, |
||||
{Name: "type", Type: migrator.DB_NVarchar, Length: 40, Nullable: false}, |
||||
{Name: "description", Type: migrator.DB_NVarchar, Length: 255, Nullable: false}, |
||||
{Name: "model", Type: migrator.DB_Text, Nullable: false}, |
||||
{Name: "created", Type: migrator.DB_DateTime, Nullable: false}, |
||||
{Name: "created_by", Type: migrator.DB_BigInt, Nullable: false}, |
||||
{Name: "updated", Type: migrator.DB_DateTime, Nullable: false}, |
||||
{Name: "updated_by", Type: migrator.DB_BigInt, Nullable: false}, |
||||
{Name: "version", Type: migrator.DB_BigInt, Nullable: false}, |
||||
}, |
||||
Indices: []*migrator.Index{ |
||||
{Cols: []string{"org_id", "folder_id", "name", "kind"}, Type: migrator.UniqueIndex}, |
||||
}, |
||||
} |
||||
|
||||
mg.AddMigration("create library_element table v1", migrator.NewAddTableMigration(libraryElementsV1)) |
||||
mg.AddMigration("add index library_element org_id-folder_id-name-kind", migrator.NewAddIndexMigration(libraryElementsV1, libraryElementsV1.Indices[0])) |
||||
|
||||
libraryElementConnectionV1 := migrator.Table{ |
||||
Name: models.LibraryElementConnectionTableName, |
||||
Columns: []*migrator.Column{ |
||||
{Name: "id", Type: migrator.DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true}, |
||||
{Name: "element_id", Type: migrator.DB_BigInt, Nullable: false}, |
||||
{Name: "kind", Type: migrator.DB_BigInt, Nullable: false}, |
||||
{Name: "connection_id", Type: migrator.DB_BigInt, Nullable: false}, |
||||
{Name: "created", Type: migrator.DB_DateTime, Nullable: false}, |
||||
{Name: "created_by", Type: migrator.DB_BigInt, Nullable: false}, |
||||
}, |
||||
Indices: []*migrator.Index{ |
||||
{Cols: []string{"element_id", "kind", "connection_id"}, Type: migrator.UniqueIndex}, |
||||
}, |
||||
} |
||||
|
||||
mg.AddMigration("create "+models.LibraryElementConnectionTableName+" table v1", migrator.NewAddTableMigration(libraryElementConnectionV1)) |
||||
mg.AddMigration("add index "+models.LibraryElementConnectionTableName+" element_id-kind-connection_id", migrator.NewAddIndexMigration(libraryElementConnectionV1, libraryElementConnectionV1.Indices[0])) |
||||
} |
Loading…
Reference in new issue