package migrations import . "github.com/grafana/grafana/pkg/services/sqlstore/migrator" // --- Migration Guide line --- // 1. Never change a migration that is committed and pushed to master // 2. Always add new migrations (to change or undo previous migrations) // 3. Some migrations are not yet written (rename column, table, drop table, index etc) func AddMigrations(mg *Migrator) { addMigrationLogMigrations(mg) addUserMigrations(mg) addTempUserMigrations(mg) addStarMigrations(mg) addOrgMigrations(mg) addDashboardMigration(mg) addDataSourceMigration(mg) addApiKeyMigrations(mg) addDashboardSnapshotMigrations(mg) addQuotaMigration(mg) addAppSettingsMigration(mg) addSessionMigration(mg) addPlaylistMigrations(mg) addPreferencesMigrations(mg) addAlertMigrations(mg) addAnnotationMig(mg) addTestDataMigrations(mg) } func addMigrationLogMigrations(mg *Migrator) { migrationLogV1 := Table{ Name: "migration_log", Columns: []*Column{ {Name: "id", Type: DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true}, {Name: "migration_id", Type: DB_NVarchar, Length: 255}, {Name: "sql", Type: DB_Text}, {Name: "success", Type: DB_Bool}, {Name: "error", Type: DB_Text}, {Name: "timestamp", Type: DB_DateTime}, }, } mg.AddMigration("create migration_log table", NewAddTableMigration(migrationLogV1)) } func addStarMigrations(mg *Migrator) { starV1 := Table{ Name: "star", Columns: []*Column{ {Name: "id", Type: DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true}, {Name: "user_id", Type: DB_BigInt, Nullable: false}, {Name: "dashboard_id", Type: DB_BigInt, Nullable: false}, }, Indices: []*Index{ {Cols: []string{"user_id", "dashboard_id"}, Type: UniqueIndex}, }, } mg.AddMigration("create star table", NewAddTableMigration(starV1)) mg.AddMigration("add unique index star.user_id_dashboard_id", NewAddIndexMigration(starV1, starV1.Indices[0])) }