Documentation ¶
Overview ¶
Package cmdapi holds the atlas commands used to build an atlas distribution.
Index ¶
- Variables
- func EnvByName(name string, opts ...LoadOption) (*Project, []*Env, error)
- func Version() string
- type Diff
- type Env
- type Format
- type Lint
- type LoadOption
- type MigrateReport
- type MigrateReportSet
- func (s *MigrateReportSet) Flush(cmd *cobra.Command, cmdErr error)
- func (*MigrateReportSet) RedactedURL(u string) string
- func (s *MigrateReportSet) ReportFor(flags migrateApplyFlags, e *Env) *MigrateReport
- func (s *MigrateReportSet) Step(format string, args ...interface{})
- func (s *MigrateReportSet) StepLog(format string, args ...interface{})
- func (s *MigrateReportSet) StepLogError(text string)
- type Migration
- type Project
- type SkipChanges
- type Vars
Constants ¶
This section is empty.
Variables ¶
var ( // Root represents the root command when called without any subcommands. Root = &cobra.Command{ Use: "atlas", Short: "A database toolkit.", SilenceUsage: true, } // GlobalFlags contains flags common to many Atlas sub-commands. GlobalFlags struct { // Config defines the path to the Atlas project/config file. ConfigURL string // SelectedEnv contains the environment selected from the active project via the --env flag. SelectedEnv string // Vars contains the input variables passed from the CLI to Atlas DDL or project files. Vars Vars } )
Functions ¶
Types ¶
type Diff ¶ added in v0.11.0
type Diff struct { // SkipChanges configures the skip changes policy. SkipChanges *SkipChanges `spec:"skip"` schemahcl.DefaultExtension }
Diff represents the schema diffing policy.
func (*Diff) Extend ¶ added in v0.11.0
Extend allows extending environment blocks with a global one. For example:
diff { skip { drop_schema = true } } env "local" { ... diff { concurrent_index { create = true drop = true } } }
func (*Diff) Options ¶ added in v0.11.0
func (d *Diff) Options() (opts []schema.DiffOption)
Options converts the diff policy into options.
type Env ¶
type Env struct { // Name for this environment. Name string `spec:"name,name"` // URL of the database. URL string `spec:"url"` // URL of the dev-database for this environment. // See: https://atlasgo.io/dev-database DevURL string `spec:"dev"` // List of schemas in this database that are managed by Atlas. Schemas []string `spec:"schemas"` // Exclude defines a list of glob patterns used to filter // resources on inspection. Exclude []string `spec:"exclude"` // Migration containing the migration configuration of the env. Migration *Migration `spec:"migration"` // Diff policy of the environment. Diff *Diff `spec:"diff"` // Lint policy of the environment. Lint *Lint `spec:"lint"` // Format of the environment. Format Format `spec:"format"` schemahcl.DefaultExtension // contains filtered or unexported fields }
Env represents an Atlas environment.
func (*Env) DiffOptions ¶ added in v0.11.0
func (e *Env) DiffOptions() []schema.DiffOption
DiffOptions returns the diff options configured for the environment, or nil if no environment or diff policy were set.
type Format ¶ added in v0.10.0
type Format struct { Migrate struct { // Apply configures the formatting for 'migrate apply'. Apply string `spec:"apply"` // Lint configures the formatting for 'migrate lint'. Lint string `spec:"lint"` // Status configures the formatting for 'migrate status'. Status string `spec:"status"` // Apply configures the formatting for 'migrate diff'. Diff string `spec:"diff"` } `spec:"migrate"` Schema struct { // Apply configures the formatting for 'schema apply'. Apply string `spec:"apply"` // Apply configures the formatting for 'schema diff'. Diff string `spec:"diff"` } `spec:"schema"` schemahcl.DefaultExtension }
Format represents the output formatting configuration of an environment.
type Lint ¶ added in v0.6.5
type Lint struct { // Format configures the --format option. Format string `spec:"log"` // Latest configures the --latest option. Latest int `spec:"latest"` Git struct { // Dir configures the --git-dir option. Dir string `spec:"dir"` // Base configures the --git-base option. Base string `spec:"base"` } `spec:"git"` schemahcl.DefaultExtension }
Lint represents the configuration of migration linting.
type MigrateReport ¶ added in v0.11.0
type MigrateReport struct {
// contains filtered or unexported fields
}
MigrateReport responsible for reporting 'migrate apply' reports.
func (*MigrateReport) CloudEnabled ¶ added in v0.11.0
func (r *MigrateReport) CloudEnabled() bool
CloudEnabled reports if cloud reporting is enabled.
func (*MigrateReport) Done ¶ added in v0.11.0
func (r *MigrateReport) Done(cmd *cobra.Command, flags migrateApplyFlags) error
Done closes and flushes this report.
func (*MigrateReport) Init ¶ added in v0.11.0
func (r *MigrateReport) Init(c *sqlclient.Client, l *cmdlog.MigrateApply, rrw cmdmigrate.RevisionReadWriter)
Init the report if the necessary dependencies.
func (*MigrateReport) RecordTargetID ¶ added in v0.11.0
func (r *MigrateReport) RecordTargetID(ctx context.Context) error
RecordTargetID asks the revisions-table to allow or provide the target identifier if cloud reporting is enabled.
type MigrateReportSet ¶ added in v0.11.0
type MigrateReportSet struct { cloudapi.ReportMigrationSetInput // contains filtered or unexported fields }
MigrateReportSet is a set of reports.
func NewReportProvider ¶ added in v0.12.0
func NewReportProvider(project *Project, envs []*Env) *MigrateReportSet
NewReportProvider returns a new ReporterProvider.
func (*MigrateReportSet) Flush ¶ added in v0.11.0
func (s *MigrateReportSet) Flush(cmd *cobra.Command, cmdErr error)
Flush report the migration deployment to the cloud. The current implementation is simplistic and sends each report separately without marking them as part of a group.
Note that reporting errors are logged, but not cause Atlas to fail.
func (*MigrateReportSet) RedactedURL ¶ added in v0.12.0
func (*MigrateReportSet) RedactedURL(u string) string
RedactedURL returns the redacted URL of the given environment at index i.
func (*MigrateReportSet) ReportFor ¶ added in v0.11.0
func (s *MigrateReportSet) ReportFor(flags migrateApplyFlags, e *Env) *MigrateReport
ReportFor returns a new MigrateReport for the given environment.
func (*MigrateReportSet) Step ¶ added in v0.12.0
func (s *MigrateReportSet) Step(format string, args ...interface{})
Step starts a new reporting step.
func (*MigrateReportSet) StepLog ¶ added in v0.12.0
func (s *MigrateReportSet) StepLog(format string, args ...interface{})
StepLog logs a line to the current reporting step.
func (*MigrateReportSet) StepLogError ¶ added in v0.12.0
func (s *MigrateReportSet) StepLogError(text string)
StepLogError logs a line to the current reporting step.
type Migration ¶ added in v0.6.0
type Migration struct { Dir string `spec:"dir"` Format string `spec:"format"` Baseline string `spec:"baseline"` LockTimeout string `spec:"lock_timeout"` RevisionsSchema string `spec:"revisions_schema"` }
Migration represents the migration directory for the Env.
type Project ¶ added in v0.6.5
type Project struct { Envs []*Env `spec:"env"` // List of environments Lint *Lint `spec:"lint"` // Optional global lint policy Diff *Diff `spec:"diff"` // Optional global diff policy // contains filtered or unexported fields }
Project represents an atlas.hcl project config file.
type SkipChanges ¶ added in v0.11.0
type SkipChanges struct { AddSchema bool `spec:"add_schema"` DropSchema bool `spec:"drop_schema"` ModifySchema bool `spec:"modify_schema"` AddTable bool `spec:"add_table"` DropTable bool `spec:"drop_table"` ModifyTable bool `spec:"modify_table"` AddColumn bool `spec:"add_column"` DropColumn bool `spec:"drop_column"` ModifyColumn bool `spec:"modify_column"` AddIndex bool `spec:"add_index"` DropIndex bool `spec:"drop_index"` ModifyIndex bool `spec:"modify_index"` AddForeignKey bool `spec:"add_foreign_key"` DropForeignKey bool `spec:"drop_foreign_key"` ModifyForeignKey bool `spec:"modify_foreign_key"` }
SkipChanges represents the skip changes policy.
type Vars ¶ added in v0.8.0
Vars implements pflag.Value.