Documentation
¶
Index ¶
- func ApplyMigrationSQL(migStat MigrationStatus, isUpMigration bool) error
- func DiffDBSchema(currentState, prevState *types.DbSchema) []types.MigAction
- func GetInfoTextFromDiff(actions []types.MigAction) string
- func GetSQLFromDiffChanges(currentState, prevState *types.DbSchema, changes []types.MigAction) (string, error)
- type DbMigration
- func (mig *DbMigration) GetDownQuery() (string, error)
- func (mig *DbMigration) GetInfoFile() (string, error)
- func (mig *DbMigration) GetUpQuery() (string, error)
- func (mig *DbMigration) ReadState() (*types.DbSchema, error)
- func (mig *DbMigration) SetActive() error
- func (mig *DbMigration) WriteDownQuery(sql string) error
- func (mig *DbMigration) WriteInfoFile(infoStr string) error
- func (mig *DbMigration) WriteUpQuery(sql string) error
- type MigrationStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyMigrationSQL ¶
func ApplyMigrationSQL(migStat MigrationStatus, isUpMigration bool) error
func GetInfoTextFromDiff ¶ added in v0.5.4
Types ¶
type DbMigration ¶
type DbMigration struct {
// dir path will also contain the id (.../migrations/dbname/<timestamp>)
DirPath string
IsActive bool
Up *DbMigration
Down *DbMigration
}
primitive DbMigration type, only containing helper function, use migrationsLib for complete use
a db migration directory will look like: /migrations/dbname/2024_01_01T00_00_00
this directory will contain files: "active" (present ONLY IF migration is currently active), "state.json" (a state snapshot of the CURRENT state) "up.sql" (sql file to go up to the next state) [COULD BE ABSENT IF LATEST STATE] "down.sql" (sql file to go down to the previous state) [ABSENT ON INIT MIGRATION] "info.md" (user maintained description of the current state changes relative to previous state)
func NewDbMigration ¶
func NewDbMigration(migDirPath string, state *types.DbSchema, upSqlStr string, downSqlStr string, infoStr string) (*DbMigration, error)
ensures migration dir exists and writes state, up/down sql queries & info file to disk path string should look like this ".../migrations/dbname/2024-01-01T00_00_00"
func (*DbMigration) GetDownQuery ¶
func (mig *DbMigration) GetDownQuery() (string, error)
func (*DbMigration) GetInfoFile ¶
func (mig *DbMigration) GetInfoFile() (string, error)
func (*DbMigration) GetUpQuery ¶
func (mig *DbMigration) GetUpQuery() (string, error)
func (*DbMigration) SetActive ¶
func (mig *DbMigration) SetActive() error
DEPRECATED set "this" migration as active. removes the active signal file from all other migrations in the parent directory then creates the active signal file in the current migration
func (*DbMigration) WriteDownQuery ¶
func (mig *DbMigration) WriteDownQuery(sql string) error
func (*DbMigration) WriteInfoFile ¶
func (mig *DbMigration) WriteInfoFile(infoStr string) error
func (*DbMigration) WriteUpQuery ¶
func (mig *DbMigration) WriteUpQuery(sql string) error
type MigrationStatus ¶
type MigrationStatus struct {
Migrations []DbMigration
ActiveMigration *DbMigration
IsInit bool
}