Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

1package playlist
2
3import (
4 playlists "github.com/grafana/grafana/apps/playlist/pkg/apis/playlist/v1"
5 migrator "github.com/grafana/grafana/pkg/registry/apps/playlist/migrator"
6 "github.com/grafana/grafana/pkg/storage/unified/migrations"
7 "k8s.io/apimachinery/pkg/runtime/schema"
8)
9
10func PlaylistMigration(migrator migrator.PlaylistMigrator) migrations.MigrationDefinition {
11 playlistGR := schema.GroupResource{Group: playlists.APIGroup, Resource: "playlists"}
12
13 return migrations.MigrationDefinition{
…lines 14–18 unchanged (5 lines)
19 Migrators: map[schema.GroupResource]migrations.MigratorFunc{
20 playlistGR: migrator.MigratePlaylists,
21 },
22 Validators: []migrations.ValidatorFactory{
23 migrations.CountValidation(playlistGR, "playlist", "org_id = ?"),
24 },
25 // Playlist tables are still being used
26 RenameTables: []string{},
27 }
28}
29

After

1package playlist
2
3import (
4 "k8s.io/apimachinery/pkg/runtime/schema"
5
6 playlists "github.com/grafana/grafana/apps/playlist/pkg/apis/playlist/v1"
7 migrator "github.com/grafana/grafana/pkg/registry/apps/playlist/migrator"
8 "github.com/grafana/grafana/pkg/storage/unified/migrations"
9)
10
…lines 11–19 unchanged (9 lines)
20 Migrators: map[schema.GroupResource]migrations.MigratorFunc{
21 playlistGR: migrator.MigratePlaylists,
22 },
23 Validators: []migrations.ValidatorFactory{
24 migrations.CountValidation(playlistGR, "playlist", "org_id = ?"),
25 },
26 SkipWhenMissing: true, // playlists may not exist at all
27 RenameTables: []string{},
28 }
29}
30

Before

source_file
package_clause
package "package"
package_identifier "playlist"
import_declaration
import "import"
import_spec_list
( "("
import_spec
package_identifier "playlists"
interpreted_string_literal
" "\""
interpreted_string_literal_content "github.com/grafana/grafana/apps/playlist/pkg/apis/playlist/v"...
" "\""
import_spec
package_identifier "migrator"
interpreted_string_literal
" "\""
interpreted_string_literal_content "github.com/grafana/grafana/pkg/registry/apps/playlist/migrat"...
" "\""
import_spec
interpreted_string_literal
" "\""
interpreted_string_literal_content "github.com/grafana/grafana/pkg/storage/unified/migrations"
" "\""
import_spec
interpreted_string_literal
" "\""
interpreted_string_literal_content "k8s.io/apimachinery/pkg/runtime/schema"
" "\""
) ")"
function_declaration
func "func"
identifier "PlaylistMigration"
parameter_list
( "("
parameter_declaration
identifier "migrator"
qualified_type
package_identifier "migrator"
. "."
type_identifier "PlaylistMigrator"
) ")"
qualified_type
package_identifier "migrations"
. "."
type_identifier "MigrationDefinition"
block
{ "{"
statement_list
short_var_declaration (+32 nodes collapsed)
return_statement
return "return"
expression_list
composite_literal
qualified_type
package_identifier "migrations"
. "."
type_identifier "MigrationDefinition"
literal_value
{ "{"
keyed_element
literal_element
identifier "ID"
: ":"
literal_element
interpreted_string_literal
" "\""
interpreted_string_literal_content "playlists"
" "\""
, ","
keyed_element
literal_element
identifier "MigrationID"
: ":"
literal_element
interpreted_string_literal
" "\""
interpreted_string_literal_content "playlists migration"
" "\""
, ","
keyed_element (+52 nodes collapsed)
, ","
keyed_element (+31 nodes collapsed)
, ","
keyed_element (+37 nodes collapsed)
, ","
comment "// Playlist tables are still being used"
keyed_element
literal_element
identifier "RenameTables"
: ":"
literal_element
composite_literal
slice_type
[ "["
] "]"
type_identifier "string"
literal_value
{ "{"
} "}"
, ","
} "}"
} "}"

After

source_file
package_clause
package "package"
package_identifier "playlist"
import_declaration
import "import"
import_spec_list
( "("
import_spec
interpreted_string_literal
" "\""
interpreted_string_literal_content "k8s.io/apimachinery/pkg/runtime/schema"
" "\""
import_spec
package_identifier "playlists"
interpreted_string_literal
" "\""
interpreted_string_literal_content "github.com/grafana/grafana/apps/playlist/pkg/apis/playlist/v"...
" "\""
import_spec
package_identifier "migrator"
interpreted_string_literal
" "\""
interpreted_string_literal_content "github.com/grafana/grafana/pkg/registry/apps/playlist/migrat"...
" "\""
import_spec
interpreted_string_literal
" "\""
interpreted_string_literal_content "github.com/grafana/grafana/pkg/storage/unified/migrations"
" "\""
) ")"
function_declaration
func "func"
identifier "PlaylistMigration"
parameter_list
( "("
parameter_declaration
identifier "migrator"
qualified_type
package_identifier "migrator"
. "."
type_identifier "PlaylistMigrator"
) ")"
qualified_type
package_identifier "migrations"
. "."
type_identifier "MigrationDefinition"
block
{ "{"
statement_list
short_var_declaration (+32 nodes collapsed)
return_statement
return "return"
expression_list
composite_literal
qualified_type
package_identifier "migrations"
. "."
type_identifier "MigrationDefinition"
literal_value
{ "{"
keyed_element
literal_element
identifier "ID"
: ":"
literal_element
interpreted_string_literal
" "\""
interpreted_string_literal_content "playlists"
" "\""
, ","
keyed_element
literal_element
identifier "MigrationID"
: ":"
literal_element
interpreted_string_literal
" "\""
interpreted_string_literal_content "playlists migration"
" "\""
, ","
keyed_element (+52 nodes collapsed)
, ","
keyed_element (+31 nodes collapsed)
, ","
keyed_element (+37 nodes collapsed)
, ","
keyed_element
literal_element
identifier "SkipWhenMissing"
: ":"
literal_element
true "true"
, ","
comment "// playlists may not exist at all"
keyed_element
literal_element
identifier "RenameTables"
: ":"
literal_element
composite_literal
slice_type
[ "["
] "]"
type_identifier "string"
literal_value
{ "{"
} "}"
, ","
} "}"
} "}"