Documentation
¶
Index ¶
- func ApplyMigrationSQL(migStat MigrationStatus, isUpMigration bool) error
- func DiffDBSchema(currentState, prevState *types.DbSchema) []types.MigAction
- 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
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
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
}